[请益] 循环的范围很大的时候怎么办

楼主: dudeboy (讨嘘至尊)   2015-07-18 12:52:18
想要抓网站下的图片 ,看了两张图片的编号是 546278.jpg ,695242.jpg
如果想要试着抓到所有的图片
for ($i=0;$i<999999;$i++)
echo "<img src=\"http://www.某某站.com/".sprintf("%06d", $i).".jpg</img>";
从000000 跑到999999, 服务器整个爆炸了啊,内存狂飙
有其它有效率的方法吗?
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-07-18 14:13:00
他爆炸他家的事你管他 你小心被他挡还差不多而且应该是一定会被挡 所以不用想了不然那种用MD5当档名的你还要抓2^128次 抓到世界末日
作者: ptwabcd (小鼬)   2015-07-18 15:51:00
你也可以用map reduce会快很多喔
作者: KawasumiMai (さあ、死ぬがいい)   2015-07-18 17:19:00
为什么会内存狂飙?你储存一堆想一次印出来吗?这种必须要定期把结果先吐出来才不会当掉另外parser的东西,建议加上时差,效率低但比较不会出事,虽然你这个应该只是自己印的而已如果你是要印出来然后用Flashget抓,时间设长一点不过你既然要跑php就直接让他帮你抓到server内就好
作者: dlikeayu (太阳拳vs野球拳)   2015-07-18 20:30:00
先别说server 光浏览器就爆了吧

Links booklink

Contact Us: admin [ a t ] ucptt.com