我在创建搜索功能的速度方面遇到了一些问题。
我的搜索使用preg_match将关键字与文本分开。它可以搜索“实习生”而不是“互联网”或“国际”。
但它的运行速度非常慢,无论如何你可以加快速度吗?
foreach ($keywords as $Word)
{
if (preg_match("/\S*\b($Word)[s]?\b\S*/i", $Text))
{
return $Word;
}
}
谢谢:)
答案 0 :(得分:0)
通过删除第一个OCLCheckErr()
,表达式已经足够快了。第二个在您的\S*
中也是多余的。
你还需要在双引号PHP正则表达式中双重转义特殊的正则表达式元字符。
使用
preg_match
请注意,如果$ keywords数组中包含特殊字符(如foreach ($keywords as $Word)
{
if (preg_match("/\\b(" . preg_quote($Word) . ")s?\\b/i", $Text))
{
return $Word;
}
}
或[
),则需要使用(
正则表达式。