您好我正在进行全文搜索,在我的函数中我找到字符串位置(对于字符串出现之前和之后的剪切x字符)我正在使用php函数mb_stripos()
。每次请求都会有几次(代码轰鸣声)。字符串长度为500-10万字符。
但问题是,在桌面上需要这个时间(每个请求调用几次)cca 500ms,但在服务器上需要20 000ms。
microtime()
大多数php操作都在服务器上更快
while (($lastPos = mb_stripos($content, $searchString, $lastPos)) !== false) {
if($lastPos <= $offset)
$startStr = 0;
else
$startStr = $lastPos - $offset;
$subs[] = mb_substr($content, $startStr, 100);
$lastPos = $lastPos + strlen($searchString);
}
为何如此可怕的差异?
答案 0 :(得分:1)
问题解决了:缺少库mbstring
。
使用php 7.1.x时的解决方案:apt-get install php7.1-mbstring
在我们的情况下,出现了一些错误:
apt-get update
之后apt-get install php7.1-mbstring
并重新启动apache。