Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar Aksen daripada Rentetan dalam PHP Menggunakan Fungsi Tersuai?

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

Barbara Streisand
Barbara Streisandasal
2024-11-12 16:51:02373semak imbas

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;
    }
  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);

Output Jangkaan:

F'oo Bar

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',

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!

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