Heim > Backend-Entwicklung > PHP-Tutorial > Wie entferne ich Akzente aus Zeichenfolgen in PHP mithilfe einer benutzerdefinierten Funktion?

Wie entferne ich Akzente aus Zeichenfolgen in PHP mithilfe einer benutzerdefinierten Funktion?

Barbara Streisand
Freigeben: 2024-11-12 16:51:02
Original
440 Leute haben es durchsucht

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

So entfernen Sie Akzente von Zeichen in einer PHP-Zeichenfolge mithilfe einer benutzerdefinierten Funktion

Während die PHP-Iconv-Funktion verwendet werden kann, um Akzente aus zu entfernen Zeichenfolgen können bestimmte Faktoren, wie z. B. eine falsche Iconv-Implementierung, die Wirksamkeit beeinträchtigen. Glücklicherweise gibt es eine alternative Methode: die Verwendung einer benutzerdefinierten Funktion, die eine Konvertierungstabelle nutzt.

Schritte:

  1. Konvertierungstabelle erstellen:
    Definieren Sie ein Array ($chars), das Akzentzeichen ihren Basisäquivalenten zuordnet. Beispiel:
    $chars = [chr(195).chr(128) => 'A', chr(195).chr(129) => 'A', ... ];
  2. Schreiben Sie die benutzerdefinierte Funktion:
    Erstellen Sie eine Funktion, die eine Zeichenfolge als Eingabe verwendet und die Konvertierungstabelle darauf anwendet und ersetzt akzentuierte Zeichen mit ihren Basis-Gegenstücken. Beispiel:

    function remove_accents($string) {
        $string = strtr($string, $chars);
        return $string;
    }
    Nach dem Login kopieren
  3. Verwenden Sie die Funktion:
    Rufen Sie die Funktion „remove_accents()“ für die gewünschte Zeichenfolge auf, um etwaige Akzente zu entfernen. Beispiel:

    $input = "Fóø Bår";
    
    // Call the function
    $output = remove_accents($input);
    
    // Display the result
    print($output);
    Nach dem Login kopieren

Erwartete Ausgabe:

F'oo Bar
Nach dem Login kopieren

Benutzerdefinierte Konvertierungstabelle:

Das Folgende ist ein Beispiel für eine Konvertierungstabelle, die Sie verwenden können:

[
    // 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',
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie entferne ich Akzente aus Zeichenfolgen in PHP mithilfe einer benutzerdefinierten Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage