Zum Inhalt springen

strtr()

Einführung

Die Funktion strtr() in PHP übersetzt Teilstrings innerhalb eines Strings. Sie ist besonders nützlich bei der Textverarbeitung, wenn bestimmte Sequenzen effizient ersetzt werden müssen. Dieser Artikel behandelt die Syntax, das Verhalten und die praktische Anwendung.

Die strtr()-Funktion verstehen

Die Funktion strtr() unterstützt zwei Signaturen:

Array-Signatur

php
strtr(string $str, array $replace) : string

Hierbei ist $str der Eingabe-String und $replace ein assoziatives Array, das Teilstrings ihren Ersetzungen zuordnet. Die Funktion ersetzt alle Vorkommen der Schlüssel durch die entsprechenden Werte.

Drei-Argument-Signatur

php
strtr(string $str, string $from, string $to) : string

In dieser Form müssen $from und $to die gleiche Länge haben. Jedes Zeichen in $from wird dem Zeichen an der gleichen Position in $to zugeordnet.

Wichtiges Verhalten: strtr() ersetzt Teilstrings nach einem „Longest-Match-First"-Algorithmus. Das bedeutet, dass sich überlappende Muster durch Priorisierung des längsten Matches auflösen lassen und Ersetzungen nicht rekursiv auf das Ergebnis angewendet werden.

Anwendungsbeispiel

Hier ist ein Anwendungsbeispiel für die Funktion strtr() in PHP:

Beispiel für PHP strtr()

php
<?php

$string = "Hello World!";
$translation_rules = array("H" => "J", "W" => "Z");
$translated_string = strtr($string, $translation_rules);
echo $translated_string;

Im obigen Beispiel definieren wir einen String $string und ein assoziatives Array $translation_rules. Die Funktion strtr() ersetzt die angegebenen Teilstrings („H" und „W") durch ihre zugeordneten Werte („J" und „Z"). Beachten Sie, dass strtr() auch mehrzeichen Teilstrings verarbeitet und Ersetzungen in einem einzigen Durchlauf ohne Rekursion durchführt.

Fazit

Die Funktion strtr() bietet eine effiziente Möglichkeit, Teilstrings in PHP zu übersetzen. Sie unterstützt sowohl die arraybasierte Zuordnung als auch die zeichenweise Übersetzung über die Drei-Argument-Signatur. Da sie in einem einzigen Durchlauf nach der Longest-Match-First-Logik arbeitet, ist sie bei mehreren Ersetzungen im Allgemeinen schneller als str_replace(). Das Verständnis dieses Verhaltens hilft Entwicklern, das richtige Werkzeug für Textverarbeitungsaufgaben auszuwählen.

Praxis

Was ist der Zweck der strtr-Funktion in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.