In diesem umfassenden Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie mit der Funktion strtr()
in PHP einzelne Zeichen innerhalb einer Zeichenkette ganz einfach austauschen können. Diese Funktion ist besonders hilfreich, wenn Sie beispielsweise in einem Text Umlaute ersetzen möchten. Sie benötigen dazu lediglich eine Austauschliste in Form eines Arrays, und schon können Sie bestimmte Zeichen durch andere Zeichen Ihrer Wahl ersetzen.
Die Funktionsweise von strtr()
Die Funktion strtr()
erwartet zwei wesentliche Parameter. Der erste Parameter ist die Zeichenkette, die bearbeitet werden soll, während der zweite Parameter die Austauschliste enthält. Diese Austauschliste definieren Sie als Array, in dem Sie festlegen, welches Zeichen durch welches andere Zeichen ersetzt werden soll. Damit lassen sich schnell und einfach Anpassungen an Texten vornehmen, die etwa in einem Webprojekt notwendig sein könnten.
Die Syntax von strtr()
:
strtr(zeichenkette, austauschliste);
Schauen wir uns das Ganze einmal in der Praxis an.
Beispiel 1: Umlaute ersetzen
Im ersten Beispiel werden wir die Umlaute „ä“ und „ö“ durch „ae“ und „oe“ ersetzen. Die Funktion ist flexibel und ermöglicht das gleichzeitige Ersetzen mehrerer Zeichen, ohne dass komplizierte Schleifen oder reguläre Ausdrücke erforderlich wären.
<?php
/*
* Created on 31.12.2009 by Nico Schubert
*/
$alte_zeichenkette = 'Das ist ein Text mit vielen Umlauten. Bei diesem Text werden mehrere Umlaute geändert. Hier sind die Umlaute: ä,ö,ü,Ä,Ö,Ü,ß<br>';
$ersatz_zeichen = array('ä' => 'ae', 'ö' => 'oe');
$neue_zeichenkette = strtr($alte_zeichenkette, $ersatz_zeichen);
echo $alte_zeichenkette;
echo $neue_zeichenkette;
?>
Ergebnis des ersten Beispiels:
Das ist ein Text mit vielen Umlauten. Bei diesem Text werden mehrere Umlaute geändert. Hier sind die Umlaute: ä,ö,ü,Ä,Ö,Ü,ß
Das ist ein Text mit vielen Umlauten. Bei diesem Text werden mehrere Umlaute geaendert. Hier sind die Umlaute: ae,oe,ü,Ä,Ö,Ü,ß
Erklärung zu Beispiel 1
In der Variable $altezeichenkette
wird der Originaltext gespeichert, der die zu ändernden Umlaute enthält. Um diese zu ersetzen, erstellen wir eine Austauschliste als Array, die in $ersatzzeichen
gespeichert wird. Hier wird festgelegt, dass das „ä“ zu „ae“ und das „ö“ zu „oe“ umgewandelt wird. Mit strtr()
übergeben wir die Zeichenkette und die Austauschliste, und das Ergebnis wird in der Variable $neue_zeichenkette
gespeichert. Am Ende zeigt die echo
-Ausgabe sowohl den Originaltext als auch den geänderten Text, sodass der Unterschied klar erkennbar wird.
Beispiel 2: Einzelnes Zeichen austauschen
In einem zweiten Szenario möchten wir ein einzelnes Zeichen in einer Zeichenkette austauschen. Dies kann praktisch sein, wenn Sie zum Beispiel das Zeichen „ß“ durch „ss“ ersetzen möchten. Dazu bietet strtr()
eine alternative Syntax, bei der wir das zu ersetzende Zeichen und das Ersatzzeichen direkt angeben können, ohne ein Array zu verwenden.
Alternative Syntax der Funktion strtr()
:
strtr(zeichenkette, gesuchtes_zeichen, ersatz_zeichen);
Beispiel 2:
<?php
/*
* Created on 31.12.2009 by Nico Schubert
*/
$alte_zeichenkette = 'Jetzt ändern wir nur ein Zeichen: ß.<br>';
$zeichen = 'ß';
$ersatz = 'ss';
$neue_zeichenkette = strtr($alte_zeichenkette, $zeichen, $ersatz );
echo $alte_zeichenkette;
echo $neue_zeichenkette;
?>
Ergebnis des zweiten Beispiels:
Jetzt ändern wir nur ein Zeichen: ß.
Jetzt ändern wir nur ein Zeichen: ss.
Erklärung zu Beispiel 2
In diesem Beispiel setzen wir nur ein Zeichen um. Der Funktion strtr()
übergeben wir die Zeichenkette $alte_zeichenkette
, das zu suchende Zeichen „ß“ und das Ersatzzeichen „ss“. Dadurch wird das Zeichen „ß“ im Text durch „ss“ ersetzt, und die echo
-Ausgabe zeigt den Effekt der Umwandlung.
Vergleich mit anderen Funktionen
Die Funktion strtr()
ist nicht die einzige Möglichkeit, Zeichen in PHP zu ersetzen. Sie sollten auch einen Blick auf str_replace()
und ereg_replace()
werfen, um die für Ihren Anwendungsfall beste Methode zu wählen. Ein nützlicher Artikel dazu ist der „Suchen und Ersetzen innerhalb von PHP“, der Ihnen dabei hilft, die Unterschiede und Anwendungsszenarien der verschiedenen Funktionen besser zu verstehen.