Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Menggantikan Watak Beraksen dengan Rakan Sejawat Tanpa Aksen dalam PHP?
Menggantikan Aksara Beraksen dalam PHP
Dalam PHP, menggantikan aksara beraksen dengan rakan biasa mereka boleh menjadi tugas yang mencabar. Pertimbangkan contoh berikut:
$string = "Éric Cantona"; $strict = strtolower($string); $patterns = [ '/[á|â|à|å|ä]/', '/[ð|é|ê|è|ë]/', '/[í|îì|ï]/', '/[ó|ô|ò|ø|õ|ö]/', '/[ú|û|ù|ü]/', '/æ/', '/ç/', '/ß/' ]; $replacements = [ 'a', 'e', 'i', 'o', 'u', 'ae', 'c', 'ss' ]; $strict = preg_replace($patterns, $replacements, $strict); echo "Final: ".$strict;
Kod ini bertujuan untuk menggantikan aksara beraksen dalam rentetan "Éric Cantona" dengan padanan tanpa aksennya, tetapi outputnya ialah "ric cantona," yang tidak betul. Isunya terletak pada hakikat bahawa kod itu tidak mengambil kira aksara beraksen huruf besar seperti "É" dalam "Éric."
Pendekatan yang betul ialah menggunakan tatasusunan aksara yang tidak diingini yang lebih komprehensif dan penggantiannya, sebagai dilihat di bawah:
$unwanted_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($str, $unwanted_array);
Dengan menggunakan tatasusunan ini, kod akan menggantikan kedua-dua aksara beraksen huruf kecil dan besar dengan tepat.
Atas ialah kandungan terperinci Bagaimana Menggantikan Watak Beraksen dengan Rakan Sejawat Tanpa Aksen dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!