php file_get_contents($url)获取的时候非常慢有没有方法解决,时间可以控制在3s以内的即可
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php file_get_contents($url)获取的时候非常慢有没有方法解决,时间可以控制在3s以内的即可相关的知识,希望对你有一定的参考价值。
不要说废话,curl更慢。有解决过着个问题的说。没有解决过的或者没有遇到过的就免了还有407点,谁解决了200点奉上
$url为百度地址。在别人服务器上面获取很快,我服务器上面就获取很慢,服务器带宽为10M。可以看出是服务器问题,但是是啥问题就不知道了。如何解决这个问题
php中file_get_contents函数的作用是获取一个 URL 的返回内容。如果是url响应速度慢,或者网络等因素,会造成等待时间较长的情况。只需设置一下file_get_contents函数的超时时间即可解决。示例代码如下:
//设置超时参数【超时:timeout】
$parm=array(
"http"=>array(
"method"=>"GET",
"timeout"=>3
),
);
////创建数据流上下文
$context = stream_context_create($opts);
//$url请求的地址,例如:
$result =file_get_contents($url, false, $context);
// 打印结果
print_r($result);
?> 参考技术A 请问你要获取的东西是什么?如果是整个页面的话那肯定是慢的,这个跟你自身的网速和你获取的目标页面大小有直接关系。如果你只是想获取目标页面中的部分信息,那就指定到那一点去。追问
目标文件就拿百度来说。我服务器上面获取需要10s但是在别人服务器上面才1s不到。而且别人服务器上面也没有弄代理,我带宽10M
追答服务器是你自己运营的吗?有时候带宽不决定网速
追问是自己运营的
追答如果用同样的方法在别人的服务器上运行比较快,在你服务器上运行比较慢的话,那就是服务器原因了。其实带宽只是一个数字。另外不需要整个页面的话就获取局部的。
追问获取的页面就一个返回时间其他什么都没有,如何解决服务器满的问题
本回答被提问者采纳 参考技术B 最简单点的,先把html的头元素 js 等等无用代码去掉。其次假如你的内容是从页面中间开始的,那就先把这之前的字符串全部截掉。
总之先缩小你要匹配字符串的范围,再去各种操作,就非常快了。
以上是关于php file_get_contents($url)获取的时候非常慢有没有方法解决,时间可以控制在3s以内的即可的主要内容,如果未能解决你的问题,请参考以下文章
file_get_contents 通过 php 失败,通过浏览器工作
php PHP Image出力(file_get_contents)