我正在尝试传递一个字符串
preg_replace('/'.preg_quote($my_str).'/i', '', $string);
但是我收到了错误
preg_replace(): Unknown modifier '\'
有没有其他解决方案来逃避这些反斜杠?
答案 0 :(得分:0)
将分隔符传递给preg_quote
echo preg_replace('/'.preg_quote("$my_str",'~').'/i', '',$string );
^
答案 1 :(得分:0)
你的$ my_str中包含/
个字符,你用它作为正则表达式分隔符。所以你有两个解决方案,
一,将分隔符/
替换为变量中不包含的任何其他内容。例如~
preg_replace('~'.preg_quote($my_str).'~i', '', $string);
^ ^
第二个解决方案,在/
\/
替换为$my_str
preg_quote
$my_str = str_replace('/', '\/', preg_quote($my_str));
$some_str = preg_replace('/'.$my_str.'/i', '', $string);