POSIX Regex-Funktionen
ereg
POSIX Regex-Funktionen
PHP Manual

# ereg_replace

(PHP 4, PHP 5)

ereg_replace — Ersetzt 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). 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:

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: Seit PHP 5.3.0 ist die regex-Erweiterung zugunsten der PCRE-Erweiterung als veraltete markiert. Ein Aufruf dieser Funktion wird eine `E_DEPRECATED`-Notice ausgeben. Sie können sich die Liste der Unterschiede ansehen, wenn Sie Hilfe beim Umstieg auf PCRE benötigen.

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

POSIX Regex-Funktionen
ereg
POSIX Regex-Funktionen
PHP Manual