我正在尝试使用GD在我的网站上大规模压缩图像,当我尝试压缩一个包含20个图像的小文件夹但是我有大约70k图像并且当我使用脚本时我得到超时并且500错误信息。这是代码:
$di = new RecursiveDirectoryIterator('./image/data/');
$iter = new RecursiveIteratorIterator($di);
$regexIter = new RegexIterator(
$iter, '/^.+\.jpg$/i', RecursiveRegexIterator::GET_MATCH);
foreach ($regexIter as $fileInfo) {
$img = imagecreatefromjpeg($fileInfo[0]);
imagejpeg($img,$fileInfo[0],
75);
}
现在我已经搜索了这个主题并发现我可以使用:
set_time_limit();
所以我决定添加
set_time_limit(100000);
但这不起作用,我仍然是超时消息,没有压缩图像
您对我如何有效地执行此操作有任何建议,因为键入每个文件夹需要数周时间。
答案 0 :(得分:-1)
做大工作的更好方法是在更多部分做这些。
e.g。您将处理过的图片移动到另一个目录中,然后在100张图片后停止脚本。 那么你只需重新启动相同的脚本几次,所有图片都已完成
答案 1 :(得分:-1)
要回答您的问题,您应该向托管服务提供商询问是否应该延长超时时间。当然,他们可能会拒绝这样做。
一个好主意是将脚本转换为从命令行运行。处理速度更快,超时通常更高,更高。但话说回来,它需要您在服务器上进行命令行访问。
最后一个选项是将您的脚本转换为“链接”。由于大部分时间都花在进行实际的图像转换上,所以我会这样做: