Menggantikan Aksara Beraksen dalam PHP
Menggantikan aksara beraksen dengan persamaan standardnya ialah tugas biasa dalam pengaturcaraan. Walaupun kod yang disediakan cuba mencapai ini, ia gagal menghasilkan output yang diingini.
Masalahnya terletak pada sensitiviti kes proses penggantian. Dalam kod anda, rentetan input mula-mula ditukar kepada huruf kecil, menghasilkan "éric cantona." Akibatnya, aksara beraksen seperti "É" digantikan dengan huruf kecil yang setara, "é." Ini membawa kepada keluaran "ric cantona" yang salah.
Untuk membetulkannya, kita boleh menggantikan aksara dalam cara yang tidak peka huruf besar-besaran, memastikan kedua-dua aksara beraksen dan bukan beraksen diubah dengan betul. Berikut ialah pendekatan alternatif yang menggunakan fungsi strtr():
$string = "Éric Cantona"; $unwanted_array = array( 'Š' => 'S', 'š' => 's', 'Ž' => 'Z', 'ž' => 'z', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'þ' => 'b', 'ÿ' => 'y' ); $str = strtr( $string, $unwanted_array );
Fungsi strtr() mengambil rentetan input dan tatasusunan aksara untuk diganti. Dalam kes kami, $unwanted_array mengandungi aksara beraksen sebagai kunci dan setara standardnya sebagai nilai. Fungsi ini melakukan carian tidak sensitif huruf besar dan menggantikan semua kemunculan aksara beraksen dengan rakan sejawatannya.
Hasilnya, kod tersebut menghasilkan output yang diingini: "eric cantona."
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Aksara Beraksen dengan betul dalam PHP Tanpa Isu Sensitiviti Kes?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!