Speciální znaky v preg_replace
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
dgx:
ad JavaScript:
addcslashes($str, "\r\n'\\") === addslashes($str), ne?

llook:
addcslashes($str, "'\"\\\0") === addslashes($str)

dgx:
pravda, pravda, oddělovače řádků *slešuje* mysql_real_escape_string()

Mato:
Prosím Vás. Nevíte kde bych našel význam těch "speciálních znaků" ?. Napište prosím na mail. k.i.p@seznam.cz. Děkuji.Diskuse je zrušena z důvodu spamu.

