Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Akzentzeichen in PHP in ihre Basiszeichen umwandeln?

Wie kann ich Akzentzeichen in PHP in ihre Basiszeichen umwandeln?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 08:32:02345Durchsuche

How can I convert accented characters to their base characters in PHP?

Umwandeln von Akzentzeichen in Basiszeichen in PHP

Die PHP-Sprache bietet Funktionen zum Ersetzen von Akzentzeichen durch ihre Basis-Gegenstücke.

Verwenden der Normalizer-Klasse

Die Normalizer-Klasse ist für konzipiert Zeichennormalisierung, einschließlich Akzenten und anderen diakritischen Zeichen. So entfernen Sie Akzente mithilfe dieser Klasse:

<code class="php">use Normalizer;
$string = Normalizer::normalize($string, Normalizer::FORM_D);</code>

Benutzerdefinierte Zeichenersetzung mit Akzenten

Wenn Sie die Normalizer-Klasse nicht verwenden möchten oder die Akzentersetzung anpassen müssen, Sie können Folgendes verwenden Funktion:

Code:

<code class="php">function unaccent($string)
{
    return preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '', htmlentities($string, ENT_QUOTES, 'UTF-8'));
}</code>

Beispielverwendung:

Um „ã“ durch „a“ zu ersetzen und „é“ mit „e“:

<code class="php">$string = "ãé";
$unaccentedString = unaccent($string);</code>

Wie es Funktioniert:

Diese Funktion wandelt die Zeichen mit Akzent mithilfe von htmlentities() in ihre HTML-Entitätsdarstellungen um. Der reguläre Ausdruck ersetzt dann die HTML-Entität durch das Basiszeichen.

Diese Methode ist mit den meisten gängigen Akzenten kompatibel, erhebt jedoch keinen Anspruch auf Vollständigkeit und deckt möglicherweise nicht alle möglichen Fälle ab.

Das obige ist der detaillierte Inhalt vonWie kann ich Akzentzeichen in PHP in ihre Basiszeichen umwandeln?. 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