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函数的超时时间即可解决。示例代码如下:

<?php
//设置超时参数【超时: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以内的即可的主要内容,如果未能解决你的问题,请参考以下文章

php中的file_get_contents或curl?

file_get_contents 通过 php 失败,通过浏览器工作

php PHP Image出力(file_get_contents)

C# 相当于 file_get_contents (PHP)

php file_get_contents 绕过

php file_get_contents抓取