Tauscht Zeichen aus oder ersetzt Zeichenketten

# strtr

(PHP 4, PHP 5, PHP 7, PHP 8)

strtr — Tauscht Zeichen aus oder ersetzt Zeichenketten

### Beschreibung

function strtr(string `$string`, string `$from`, string `$to`): string

Alternative Signatur (benannte Parameter werden nicht unterstützt):

function strtr(string `$string`, array `$replace_pairs`): string

Diese Funktion gibt eine Kopie von `string` zurück, in der alle Vorkommen jedes Zeichens von `from` in das korrespondierende Zeichen in `to` umgewandelt wurden. Mit drei Argumenten gibt diese Funktion eine Kopie von `string` zurück, in der alle Vorkommen jedes (single-byte) Zeichens von `from` in das korrespondierende Zeichen in `to` übersetzt wurden; d. h., jedes Vorkommen von `$from[$n]` wurde ersetzt durch `$to[$n]`, wobei `$n` ein gültiger Offset in beiden Argumenten ist.

Haben `from` und `to` eine unterschiedliche Länge, werden die überzähligen Zeichen im jeweils längeren Parameter ignoriert. Die Länge von `string` wird die gleiche wie die des Rückgabewertes sein.

Wurden zwei Argumente übergeben, sollte das zweite ein array in der Form `array('from' => 'to', ...)` sein. Der Rückgabewert ist ein string, in dem alle Vorkommen der Array Schlüssel durch die entsprechenden Werte ersetzt wurden. Die längsten Schlüssel werden zuerst getestet werden. Wurde eine Teilzeichenkette ersetzt, wird ihr neuer Wert nicht nochmals durchsucht.

In diesem Fall können die Schlüssel und Werte beliebige Längen haben, vorausgesetzt, es gibt keinen leeren Schlüssel; zusätzlich kann die Länge des Rückgabewertes von der des `string` abweichen. Diese Funktion ist jedoch dann am effizientesten, wenn alle Schlüssel die gleiche Größe besitzen.

### Parameter-Liste

`string`

  Der String, in dem die Ersetzungen vorgenommen werden sollen.

`from`

  Der String, der gegen `to` ausgetauscht werden soll.

`to`

  Der String, der `from` ersetzen soll.

`replace_pairs`

  Der `replace_pairs`-Parameter kann anstatt der Parameter `to` und `from` verwendet werden. In diesem Fall muss ein array in der Form `array('von' => 'nach', ...)` übergeben werden.

  Wenn `replace_pairs` einen Schlüssel enthält, der ein leerer string (`""`) ist, wird das Element ignoriert; ab PHP wird in diesem Fall ein `E_WARNING` erzeugt.

### Rückgabewerte

Gibt den übersetzten string zurück.

### Beispiele

Beispiel #1 strtr()-Beispiel

    <?php
    $addr = "The river å";

    // In dieser Form führt strtr() eine byteweise Übersetzung durch
    // Daher gehen wir hier von einer Ein-Byte-Kodierung aus:
    $addr = strtr($addr, "äåö", "aao");
    echo $addr, PHP_EOL;
    ?>

Das nächste Beispiel zeigt das Verhalten von strtr(), aufgerufen mit nur zwei Argumenten. Beachten Sie den Vorrang der Ersetzungen (`"h"` wird nicht gewählt, da es längere Übereinstimmungen gibt) und dass der ersetzte Text nicht erneut durchsucht wurde.

Beispiel #2 strtr()-Beispiel mit zwei Argumenten

    <?php
    $trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
    echo strtr("hi all, I said hello", $trans);
    ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    hello all, I said hi

Die zwei Verhaltensweisen unterscheiden sich wesentlich. Mit 3 Argumenten esetzt strtr() Bytes; mit zweien kann sie längere Teilzeichenketten ersetzen.

Beispiel #3 strtr(): Vergleich der Verhaltensweisen

    <?php
    echo strtr("baab", "ab", "01"),"\n";

    $trans = array("ab" => "01");
    echo strtr("baab", $trans);
    ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    1001
    ba01

### Siehe auch

- str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
- preg_replace() - Sucht und ersetzt mit regulären Ausdrücken

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open