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错误
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
给你个提示内存溢出
开头加上下面代码试试:
ini_set('memory_limit', '-1'); // 执行内存无限
加上某些变量手动unset()掉
为什么不批量下载呢
以前用Nginx也会出现这种问题,请求时间过长的时候,就会直接断掉了,但是后台代码还在跑。
不过当时对Nginx不熟,也没解决这个问题。
陪题主坐等答案
这样楼主,你在
cli模式下直接执行php,如php test.php,这样它会一直跑不存在你的什么提示,这只是估计哈,以为我认为毕竟这种直接可以在cli模式下处理的东西不需要在传到前面去,当然毕竟技术有限个人理解是这样,如果这里报错了 。请查看php.ini 错误日志放在哪里的 看是什么错误。这样不至于500错误你不知道是什么