Xava: preg_replace: Rückreferenzierung klappt nicht

Beitrag lesen

Hallo!

Ich will folgendes mit der Funktion "preg_replace" erreichen:

Zeichen wie ".", "?", "*", etc. sollen jeweils ein Backslash ("") vorangestellt werden.

Hierzu mein bisheriger Code:

<?php
     $string = "?";
     $search = array ("/(.)/", "/(!)/", "/(?)/", "/(\*)/", "/(+)/");
     $replace = "\$1";
     $new_string = preg_replace ($search, $replace, $string);
?>

Nur leider funktioniert es so nicht. Es wird der String "$1" anstatt von "?" zurückgegeben.

Wenn man "\$1" durch "\ $1" ersetzt, so wird der String "\ ?" zurückgegeben.

Wie muss ich die Variable "$replace" definieren, sodass "?" zurückgegeben wird?

Im PHP-Handbuch (http://de.php.net/manual/de/function.preg-replace.php) habe ich leider nichts zur Problemlösung gefunden.