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