V regulárním výrazu funkce preg_replace má řada znaků speciální význam. Tyto znaky se dají ošetřit funkcí preg_quote. Některé znaky mají speciální význam i v řetězci, kterým se má regulární výraz nahradit, a to sice zpětné lomítko a dolar. Pro náhradu těchto znaků žádná zvláštní funkce neexistuje, bohatě si ale vystačíme s obyčejnou addcslashes:
<?php preg_replace($pattern, addcslashes($replacement, '\\$'), $subject); ?>
Tuto funkci mimochodem používám i v případě, kdy potřebuji vypsat text do JavaScriptového řetězce:
<?php echo "el.innerHTML = '" . addcslashes($str, "\r\n'\\") . "'"; ?>
Diskuse je zrušena z důvodu spamu.