【发布时间】:2011-12-08 13:29:37
【问题描述】:
$remarks = preg_replace('/'.$searchText.'/i', '<span class="searchText">$0</span>', $remarks);
我使用上面的代码行来突出显示用户输入的搜索文本。它在 99% 的时间都有效,除非搜索字符串恰好包含正斜杠 (/) 字符。当他们这样做时,php 返回一个“未知修饰符”错误。我尝试通过在 preg_replace 行之前添加这行代码来使用反斜杠字符转义正斜杠。
$searchText = str_replace('/', '\/', $searchText);
这似乎没有帮助。我该如何完成这项工作?
【问题讨论】:
-
您有什么理由在附加行中使用
str_replace而不是preg_replace来删除任何额外的斜杠?对于附加行,您是否尝试过将 / 替换为空而不是转义? -
preg_replace error 的可能重复项
-
我使用 str_replace 而不是 preg_replace 因为我认为我不需要 preg_replace 的额外功能。如果我什么都不替换 /,那么它不会突出显示正确的文本。
标签: php preg-replace