如何解决file_get_contents()函数运行时间过长的问题? - 技术问答

最近做一个采集,用file_get_contents()函数获取对方网页内容,但是遇到某些网站打不开或者服务器相应超时,但是file_get_contents()函数会一... 最近做一个采集,用file_get_contents()函数获取对方网页内容,但是遇到某些网站打不开或者服务器相应超时,但是file_get_contents()函数会一直运行,导致整个程序运行时间过长,能不能进行一些处理,当对方服务器20秒没有反应就跳过file_get_contents()函数直接运行下面的语句??? 展开
 我来答
匿名用户
推荐于2016-04-14
展开全部
file_get_contents() 很方便,但是没有任何控制能力,效率也比使用 fopen/fread 要慢一些。你可以用 Streams 函数来实现读取采集数据,控制连接时间等。比如:[php]$handle = @fopen(\" http://www.163.com\", \"r\");if (!$handle) {? ? die(\'Unable to open\');}// 200 毫秒stream_set_timeout($handle, 0, 200);// 采集的内容$content = stream_get_contents($handle);$info = stream_get_meta_data($handle);fclose($handle);if ($info[\'timed_out\'李雀]) {? ? print \'time out\';? ? // others} else {? ? // ....}/* vim: set expandtab tabstop=4 shiftwidth=4: */[/php]fopen 在返扰逗我的机器上漏卖面有点问题,开远程URL连接总是失败,似乎是 xdebug 的原因,你也可以试试 fsockopen 来打开连接。
匿名用户
2013-08-20
展开全部
7# 没有了时间控制啊,还是会一直执行的啊……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-20
展开全部
10# settimeout不是代码运行的延迟时间么?????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-20
展开全部
3# 要是php能够采集朝吵丛时的网站纯碰扮的话,估计浏览器就应该用php编写了。。。。从做灶来没指望能够打开超时的网站,只是想别让整个采集卡死在一个网站上。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式