Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Akzentzeichen in PHP ohne Probleme mit der Groß-/Kleinschreibung korrekt ersetzen?

Wie kann ich Akzentzeichen in PHP ohne Probleme mit der Groß-/Kleinschreibung korrekt ersetzen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-14 02:55:18355Durchsuche

How Can I Correctly Replace Accented Characters in PHP Without Case Sensitivity Issues?

Akzentzeichen in PHP ersetzen

Das Ersetzen von Akzentzeichen durch ihre Standardäquivalente ist eine häufige Aufgabe in der Programmierung. Der bereitgestellte Code versucht zwar, dies zu erreichen, erzeugt jedoch nicht die gewünschte Ausgabe.

Das Problem liegt in der Groß-/Kleinschreibung des Ersetzungsprozesses. In Ihrem Code wird die Eingabezeichenfolge zunächst in Kleinbuchstaben umgewandelt, was zu „éric cantona“ führt. Infolgedessen werden Akzentzeichen wie „É“ durch ihre Kleinbuchstabenäquivalente „é“ ersetzt. Dies führt zur falschen Ausgabe von „ric cantona“.

Um dies zu beheben, können wir die Zeichen ohne Berücksichtigung der Groß-/Kleinschreibung ersetzen und so sicherstellen, dass sowohl akzentuierte als auch nicht akzentuierte Zeichen korrekt umgewandelt werden. Hier ist ein alternativer Ansatz, der die Funktion strtr() verwendet:

$string = "Éric Cantona";
$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' );
$str = strtr( $string, $unwanted_array );

Die Funktion strtr() benötigt eine Eingabezeichenfolge und ein Array von zu ersetzenden Zeichen. In unserem Fall enthält das $unwanted_array die Akzentzeichen als Schlüssel und ihre Standardäquivalente als Werte. Die Funktion führt eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durch und ersetzt alle Vorkommen der Zeichen mit Akzent durch ihre Gegenstücke.

Als Ergebnis erzeugt der Code die gewünschte Ausgabe: „eric cantona.“

Das obige ist der detaillierte Inhalt vonWie kann ich Akzentzeichen in PHP ohne Probleme mit der Groß-/Kleinschreibung korrekt ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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