Akzentzeichen in PHP ersetzen
Der angegebene Code dient zum Ersetzen von Akzentzeichen durch ihre normalen Gegenstücke. Allerdings können Zeichen wie É nicht in E konvertiert werden, da die Funktion strtolower() keine Unicode-Zeichen konvertiert. Um dieses Problem zu lösen, können wir einen anderen Ansatz verwenden.
Im bereitgestellten Code ist die Verwendung regulärer Ausdrücke mit preg_replace() für diese Aufgabe zu kompliziert. Stattdessen können wir eine einfachere und effizientere Methode verwenden, indem wir die Funktion strtr() verwenden.
Die Funktion strtr() benötigt zwei Argumente: die zu ändernde Zeichenfolge und ein Array, das die Zeichenzuordnungen enthält. Wir können ein Array erstellen, in dem die Schlüssel die Zeichen mit Akzent und die Werte ihre Ersetzungen sind.
Zum Beispiel:
$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' );
Sobald wir dieses Array haben, können wir strtr() verwenden, um Ersetzen Sie die Zeichen mit Akzent in der angegebenen Zeichenfolge:
$originalString = "Éric Cantona"; $modifiedString = strtr($originalString, $unwanted_array); echo "Original: $originalString\n"; echo "Modified: $modifiedString\n";
Dieser Ansatz ersetzt Zeichen mit Akzent korrekt durch ihre normalen Gegenstücke, was zum gewünschten Ergebnis führt Ausgabe:
Original: Éric Cantona Modified: Eric Cantona
Das obige ist der detaillierte Inhalt vonWie kann ich Akzentzeichen in PHP effizient ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!