$remarks = preg_replace('/'.$searchText.'/i', '<span class="searchText">$0</span>', $remarks);
我使用上面的代码行突出显示用户输入的搜索文本。除非搜索字符串恰好包含正斜杠(/)字符,否则它在99%的时间内都有效。当他们这样做时,php返回“未知修饰符”错误。我尝试通过在preg_replace行之前添加此代码行来用反斜杠字符转义正斜杠。
$searchText = str_replace('/', '\/', $searchText);
这似乎没有帮助。我该如何工作?
这就是preg_quote
的用途:
preg_quote
将HTML标签更改为乳胶...
$searchText = preg_quote($searchText, '/');
preg_replace("/$searchText/i", ...)
疯狂...;)