PHP Portal » PHP Handbuch » ereg_replace

Werbung

ereg_replace


(PHP 4, PHP 5)

ereg_replaceErsetzt einen regulären Ausdruck

Beschreibung

string ereg_replace ( string $pattern , string $replacement , string $string )

Diese Funktion durchsucht string nach Übereinstimmungen mit pattern und ersetzt dann den übereinstimmenden Text durch replacement .

Warnung

Diese Funktion ist seit PHP 5.3.0 DEPRECATED (veraltet) und wird in PHP 6.0.0 ENTFERNT. Sich auf diese Funktion zu 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:

PHP Code
1
2
3
4
$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:

PHP Code
1
2
3
4
5
6
7
8
9
10
/* 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.' */

PHP Code
1
2
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href="\\0">\\0</a>", $text);

Anmerkungen

Hinweis: As of PHP 5.3.0, the regex extension is deprecated in favor of the PCRE extension. Calling this function will issue an E_DEPRECATED notice.

Tipp

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