6.2.4 Suchen und Ersetzen

Bislang konnten wir mit preg_replace() nur festgelegte Ersetzungen vornehmen. Interessant wird es nun, da preg_replace($suchmuster, $ersetzen, $text) auch die zuvor gefundenen Textstücke verwenden kann.

Beispiel Datumsformat konvertieren

Konvertieren des ISO Datum-Formats yyyy-mm-dd in ein deutsches Datumsformat dd.mm.yyyy.
Text: 2011-05-31
Suchmuster: /(\d{4})-(\d{2})-(\d{2})/
Ersetzen: $3.$2.$1
Ergebnis: 31.05.2011
Jedes Teilergebnis einer runden Klammer (z.B. (\d{4})) wird automatisch in eine Reguläre-Ausdruck-Variable geschrieben. Die erste öffnende Klammer in $1, die zweite öffnende Klammer in $2, usw.

Hier das Beispiel als komplettes PHP-Miniprogramm:

1
2
3
4
5
6
7
<?php
$date = '2011-05-31';
$such = '/(\d{4})-(\d{2})-(\d{2})/';
$ersetz = '$3.$2.$1';
$datum = preg_replace($such, $ersetz, $date);
print $datum;
?>