php批量下载图片总是中途断开?

set_time_limit(0);
//省略代码
$path="照片";
while($row = $query->fetch()) {
    $image_arr.=$row[1].$row[2];
}
$image_array=explode(',',$image_arr);//获得一个数组,类似('a00001','a00002')

foreach($image_array as $v){
    $image=file_get_contents("http://111.11.11.111:80/IMG_".$v."_2122.jpg");//拼接图片地址
    file_put_contents(iconv("UTF-8", "GBK", $path."/".$v.".jpg"),$image);//下载图片

}

一共大概有2000张图片,为什么总是到中途(三四百张)就会中断了,报500错误

阅读 3.6k
5 个回答

给你个提示内存溢出

开头加上下面代码试试:

ini_set('memory_limit', '-1'); // 执行内存无限

加上某些变量手动unset()掉

为什么不批量下载呢

以前用Nginx也会出现这种问题,请求时间过长的时候,就会直接断掉了,但是后台代码还在跑。

不过当时对Nginx不熟,也没解决这个问题。

陪题主坐等答案

这样楼主,你在cli模式下直接执行php,如php test.php,这样它会一直跑不存在你的什么提示,这只是估计哈,以为我认为毕竟这种直接可以在cli模式下处理的东西不需要在传到前面去,当然毕竟技术有限个人理解是这样,如果这里报错了 。请查看php.ini 错误日志放在哪里的 看是什么错误。这样不至于500错误你不知道是什么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题