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().