PHP 向预定义的字符集添加斜杠

d-_*_*_-b 0 php regex

如何在单个函数中在某些字符前加上反斜杠?

相当于做了一堆str_replaces:

$text = "asdf[],.\?'";
$text = str_replace("'","\'", $text);
$text = str_replace("s","\s", $text);
$text = str_replace("[","\[", $text);
...etc...
Run Code Online (Sandbox Code Playgroud)

preg_replace想像在正则表达式中一样传入一个字符类,但不确定如何在反斜杠前面而不是替换它。

$text = preg_replace("/['s\[]/","\{$var?}",$text);
Run Code Online (Sandbox Code Playgroud)

我可以在数组中设置字符并循环遍历它,但我似乎记得有一个函数就是这样做的。

goa*_*oat 5

addcslashes()如果要使用反斜杠转义单个字符,请使用:

$text = "asdf[],.\?'";
echo addcslashes($text, "'s[");
Run Code Online (Sandbox Code Playgroud)

输出:

a\sdf\[],.\?\'
Run Code Online (Sandbox Code Playgroud)

演示