我试图在目录中搜索一些图片,然后将它们插入数据库。但首先,目录中的图片很多——35000张,我应该在这个目录中搜索所有的优惠——也就是10000张。显示错误:
超过30秒的最大执行时间
我该怎么做?
我正在按模式搜索-按$segment-即报价id:
if ($dh = opendir($dir))
{
$array = array();
while (($file = readdir($dh)) !== false)
{
$s = substr($file, strpos($file, $segment), strlen($segment));
if($s == $segment) {
$array[] = $file;
}
foreach($array as $key) {
$sql = new sql();
$sql->query("INSERT INTO offers_images(offer_id, offer_filename) Values ('".$segment."', '".$key."') ");
}
closedir($dh);
}
}
1)首先,简单的方法是:您可以尝试使用set_time_limit(0),但此选项可能在共享主机上禁用。你必须检查一下。
2) 对于小块数据,您可以一步一步地创建多个分离的"工作者"或一个类似"工作者"的对象。
3) 您可以为CLI模式编写php脚本(这些时间不受限制),并将其作为后台作业运行。
也许可以尝试通过模式搜索它们
(这样你会过滤到更少的文件)。
关注链接:glob