最近在写公司的抓取百度快照的时候,用到了这两个函数 。
一开始用的是网上搜的获取快照的代码,看了下思路就写了get_file_content。
把逻辑写完,开始用php artisan console 开始跑,跑到几十条数据,就开始停住,不过还好时不时的还会动一下,深感欣慰,虽然数据库里面几万条数据,算了下8个小时就能跑完了,就把命令放旁边跑了,继续干别的事情。
结果跑到3820条时候,报了个错误。
file_get_contents(XXXXXXXXXXXXXXXXX) :fail to open stream:HTTP request failed!
google了一下,在StackOverflow上看到别人说用curl。抱着试试看的心态换了curl 。
然后又跑了一下。
三个字。
起飞了。
后来统计了一下:
file_get_content
17:06 0-3820 15:48 78分钟 0.02/min 1.13秒每条
curl
17:20之后 改用curl 3820开始 17:37 7611 《7935》《8225》1min 300 0.2S每条 17:53 10000 6180 33 0.3S
这差距,惊呆了好吗。
搜了下原理:
主要是curl 会做dns缓存 ,减少了dns查询的开销时间