PHP Handbuch
Zurück |  | Nach vorne

# ereg_replace

(PHP 3, PHP 4 )

ereg_replace -- Ersetzt einen regulären Ausdruck

## Beschreibung

string ereg_replace ( string Suchmuster, string Ersatz, string Zeichenkette)

> Anmerkung: Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace().

Diese Funktion durchsucht `Zeichenkette` nach Übereinstimmungen mit `Suchmuster` und ersetzt dann den übereinstimmenden Text durch `Ersatz`.

Zurückgegeben wird die geänderte Zeichenkette, was auch bedeuten könnte, dass die ursprüngliche Zeichenkette zurückgegeben wird, wenn es keine zu ersetzenden Übereinstimmungen gibt.

Wenn `Suchmuster` eingeklammerte Teilzeichenketten enthält, darf `Ersatz` Teilzeichenketten der Form `\\`Ziffer`` enthalten, die dann durch die Ziffer'ste Teilzeichenkette ersetzt werden. `\\0` erzeugt den gesamten Inhalt der durchsuchten Zeichenkette. Bis zu neun Teilzeichenketten dürfen verwendet werden. Klammern dürfen geschachtelt werden und werden in diesem Fall anhand der öffnenden Klammern gezählt.

Wenn in `Zeichenkette` keine Übereinstimmungen gefunden werden, wird `Zeichenkette` unverändert zurückgegeben.

Der folgende Code-Schnipsel gibt zum Beispiel dreimal "Das war ein Test" aus:

Beispiel 1. ereg_replace() Beispiel
    $string = "Das ist ein Test";
    echo ereg_replace (" ist", " war", $string);
    echo ereg_replace ("( )ist", "\\1war", $string);
    echo ereg_replace ("(( )ist)", "\\2war", $string);

Folgendes ist zu beachten: Wenn Sie als `Ersatz` einen ganzzahligen Wert verwenden, bekommen sie vielleicht nicht das erwartete Ergebnis. Das liegt daran, dass ereg_replace() die Zahl als Ordinalwert eines Zeichens betrachtet und dieses verwendet. Zum Beispiel:

Beispiel 2. ereg_replace() Beispiel
    <?php
    /* Dieses funktioniert nicht wie erwartet. */
    $zahl = 4;
    $zeichenkette = "Diese Zeichenkette hat vier Wörter.";
    $zeichenkette = ereg_replace('vier', $zahl, $zeichenkette);
    echo $zeichenkette;   /* Ausgabe: 'Diese Zeichenkette hat   Wörter.' */

    /* Dieses funktioniert. */
    $zahl = '4';
    $zeichenkette = "Diese Zeichenkette hat vier Wörter.";
    $zeichenkette = ereg_replace('vier', $zahl, $zeichenkette);
    echo $zeichenkette;   /* Output: 'Diese Zeichenkette hat 4 Wörter.' */
    ?>

Beispiel 3. Ersetzen von URLs durch Links
    $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                         "<a href=\"\\0\">\\0</a>", $text);

Siehe auch: ereg(), eregi(), eregi_replace(), str_replace() und preg_match().

Zurück | Zum Anfang | Nach vorne
Reguläre Ausdrücke Funktionen (POSIX erweitert) | Nach oben | ereg