最近使用PHPfile_get_contents() 函数进行采集远程数据的时候,发现老丢包,100篇文章要少那么几篇,对我们这些追求完美的人来说是不可能的。
经常出现如下错误:Warning: file(http://www.****.com/****.html) [function.file]: failed to open stream: HTTP request failed! in *****.php on line x
尝试过很多方法,甚至变更了PHP运行方式,但是似乎问题没有得到改善。
高手答复:路由问题,换一个快一点的DNS即可,换了一下机器的DNS,问题并没有得到改善。
如遇到这样的问题,我的解决办法是。
修改原来的函数如:$content =file_get_contents($url);
修改如:$i=0;
while(!$content or $i==4){
$content = @file_get_contents($url);
$i++;
}
这样,函数将判断是否取到内容,取不到的话,将重复执行(@的作用:过滤错误提示)。经过本人测试,如此while循环执行不超过10次(我的最多4次即可获取),即可完成file_get_contents操作。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...