Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menggantikan Aksara Beraksen dalam PHP dengan Cekap?

Bagaimanakah Saya Boleh Menggantikan Aksara Beraksen dalam PHP dengan Cekap?

Susan Sarandon
Susan Sarandonasal
2024-12-16 17:07:22591semak imbas

How Can I Efficiently Replace Accented Characters in PHP?

Menggantikan Aksara Beraksen dalam PHP

Kod yang diberikan direka bentuk untuk menggantikan aksara beraksen dengan rakan biasa mereka. Walau bagaimanapun, ia gagal untuk menukar aksara seperti É kepada E kerana fungsi strtolower() tidak menukar aksara Unicode. Untuk menyelesaikan isu ini, kami boleh menggunakan pendekatan yang berbeza.

Dalam kod yang disediakan, penggunaan ungkapan biasa dengan preg_replace() adalah terlalu rumit untuk tugasan ini. Sebaliknya, kita boleh menggunakan kaedah yang lebih mudah dan cekap menggunakan fungsi strtr().

Fungsi strtr() mengambil dua hujah: rentetan yang akan diubah suai dan tatasusunan yang mengandungi pemetaan aksara. Kita boleh mencipta tatasusunan di mana kuncinya ialah aksara beraksen dan nilainya adalah penggantinya.

Contohnya:

$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'
);

Setelah kita mempunyai tatasusunan ini, kita boleh menggunakan strtr() untuk gantikan aksara beraksen dalam rentetan yang diberikan:

$originalString = "Éric Cantona";
$modifiedString = strtr($originalString, $unwanted_array);
echo "Original: $originalString\n";
echo "Modified: $modifiedString\n";

Pendekatan ini akan menggantikan aksara beraksen dengan normalnya dengan betul rakan sejawat, menghasilkan output yang diingini:

Original: Éric Cantona
Modified: Eric Cantona

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Aksara Beraksen dalam PHP dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn