我正在从一个 XML 文件(大约 5000 个产品)中导入产品数据的分配。当我运行脚本时,我可以让它在大约 10-12 秒内工作。
现在,当我添加这个确保每个产品描述都以标点符号结尾的标点符号功能时,代码会一直运行到我的服务器上的 php 60 秒加载时间,但我没有收到任何错误。我打开了错误报告。我刚刚收到一个脚本无法在 60 秒内加载的最终错误。
问题是,看看这个函数,是不是很耗资源?我该怎么做才能让它更快?
根据评论,问题可能是预赛循环。让我解释一下这个函数的作用。它检查字符串的最后一个字符是否是标点符号。如果不是,它将匹配最后一个字符并再次检查。
function punctuation($string){
if(strlen($string) > 5){
// Get $last_char
$desired_punctuation = array(".",",","?","!");
$last_char = substr($string, -1);
// Check if $last_char is in the $desired_punctuation array
if(!in_array($last_char, $desired_punctuation)){
// strip the $mytrim string and get only letters at the end;
while(!preg_match("/^[a-zA-Z]$/", $last_char)){
$string = substr($string, 0, -1);
$last_char = substr($string, -1);
}
// add "." to the string
$string .= '.';
}
}
return $string;
}
如果函数没问题,那么长的运行时间必须来自我必须发现的其他东西。
我只是想要你对这部分的意见。