Bagaimana untuk mengalih keluar Aksen daripada Rentetan dalam PHP Menggunakan Fungsi Tersuai?

Barbara Streisand
Lepaskan: 2024-11-12 16:51:02
asal
341 orang telah melayarinya

How to Remove Accents from Strings in PHP Using a Custom Function?

Cara Mengeluarkan Aksen daripada Aksara dalam Rentetan PHP menggunakan Fungsi Tersuai

Manakala fungsi PHP iconv boleh digunakan untuk mengalih keluar aksen daripada rentetan, faktor tertentu, seperti pelaksanaan iconv yang salah, boleh menghalang keberkesanannya. Nasib baik, terdapat kaedah alternatif: menggunakan fungsi tersuai yang memanfaatkan jadual penukaran.

Langkah:

  1. Buat Jadual Penukaran:
    Tentukan tatasusunan ($chars) yang memetakan aksara beraksen kepada persamaan asasnya. Contoh:
    $chars = [chr(195).chr(128) => 'A', chr(195).chr(129) => 'A', ... ];
  2. Tulis Fungsi Tersuai:
    Buat fungsi yang mengambil rentetan sebagai input dan menggunakan jadual penukaran padanya, menggantikan aksara beraksen dengan rakan asasnya. Contoh:

    function remove_accents($string) {
        $string = strtr($string, $chars);
        return $string;
    }
    Salin selepas log masuk
  3. Gunakan Fungsi:
    Panggil fungsi remove_accents() pada rentetan yang dikehendaki untuk mengalih keluar sebarang aksen. Contoh:

    $input = "Fóø Bår";
    
    // Call the function
    $output = remove_accents($input);
    
    // Display the result
    print($output);
    Salin selepas log masuk

Output Jangkaan:

F'oo Bar
Salin selepas log masuk

Jadual Penukaran Tersuai:

Berikut ialah contoh jadual penukaran yang boleh anda gunakan:

[
    // Decompositions for Latin-1 Supplement
    chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
    chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
    chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
    chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
    chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
    chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
    chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
    chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
    chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
    chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
    chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
    chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
    chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
    chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
    chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
    chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
    chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
    chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
    chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
    chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
    chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
    chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
    chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
    chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
    chr(195).chr(182) =&gt> 'o', chr(195).chr(185) => 'u',
    chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
    chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
    chr(195).chr(191) => 'y',
    // Decompositions for Latin Extended-A
    chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
    chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
    chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
    chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
    chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
    chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
    chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
    chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
    chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
    chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
    chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
    chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
    chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
    chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
    chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
    chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Aksen daripada Rentetan dalam PHP Menggunakan Fungsi Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan