PHP Handbuch
Zurück |  | Weiter

# ereg_replace

(PHP 3, PHP 4, PHP 5)

ereg_replace -- Ersetzt einen regulären Ausdruck

## Beschreibung

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

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

`<?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 `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

`<?php $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\">\\0</a>", $text); ?>`

> 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(), eregi(), eregi_replace(), str_replace() und preg_match().

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