PHP Dokumentation: Function ereg-replace
12. Januar 2010 von werner
ereg_replace
(PHP 4, PHP 5)
ereg_replace — Ersetzt einen regulären Ausdruck
Beschreibung
Diese Funktion durchsucht string nach Übereinstimmungen mit pattern und ersetzt dann den übereinstimmenden Text durch replacement.
Diese Funktion istseit PHP 5.3.0 DEPRECATED (veraltet) und wirdin PHP 6.0.0 ENTFERNT. Sich auf diese Funktionzu verlassen ist in keiner Weise empfehlenswert.
Parameter-Liste
- pattern
Ein POSIX-erweiterter regulärer Ausdruck
- replacement
Wenn pattern eingeklammerte Teilzeichenketten enthält, darf replacement 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.
- string
Die zu durchsuchende Zeichenkette
Rückgabewerte
Zurückgegeben wird die geänderte Zeichenkette. Wenn in string keine Übereinstimmungen gefunden werden, wird sie unverändert zurückgegeben.
Beispiele
Der folgende Code-Schnipsel gibt zum Beispiel dreimal "Das war ein Test" aus:
Beispiel #1 ereg_replace()-Beispiel
<?php$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 replacement 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
<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);
?>Anmerkungen
Hinweis: As of PHP 5.3.0, theregex extension is deprecated in favor of the PCRE extension. Calling this function will issue an E_DEPRECATED notice.
Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace().
Siehe auch
- ereg() – Sucht Übereinstimmungen mit einem regulären Ausdruck
- eregi() – Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung
- eregi_replace() – Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung
- str_replace() – Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
- preg_match() – Führt eine Suche mit einem regulären Ausdruck durch