PHP的卷曲无法正常工作

奥古兹·吉拉尔

我一直在尝试使用PHP从链接中获取网络内容。我已经尝试过使用file_get_contents()curl和curl,但是两者都无法使用我想要的链接。我的curl代码如下:

function request($url){
   $curl = curl_init();
   curl_setopt($curl, CURLOPT_URL, $url);
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
   $res = curl_exec($curl);
   curl_close($curl);
   return $res;
}
echo request("http://...");

此代码显示类似“”的内容

此代码适用于Google之类的网站,但不适用于我想要的网址。但是,当我使用curlterminal命令尝试它时,它将从那里开始工作。可能是什么问题呢 ?

这是curl -I输出:

HTTP/1.1 200 OK
Date: Mon, 09 Jun 2014 23:47:43 GMT
Server: Apache
Set-Cookie: PHPSESSID=m7fs1ikt47epgoiekg68nnq064; path=/; domain=.sozlukspot.com
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Powered-By: PleskLin
Connection: close
Content-Type: text/html
贾科莫1968

尝试这个。我使用curl为从远程URL获取内容而设置的一组标准选项对功能进行了改进我相信它应该起作用。

我认为问题是您尝试连接的网站拒绝了来自未设置适当用户代理,纯curl请求或仅具有空白用户代理的Web请求的连接因此设置CURLOPT_USERAGENTincurl应该可以。我在这里将其设置为一个相当通用的Mozilla/5.0设置,但是将其更改为您认为需要将其设置为任何其他代理。

function request($url){
    // The actual curl request.
    $curl_timeout = 5;
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $curl_timeout);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    $res = curl_exec($curl);
    curl_close($curl);
    return $res;
}
echo request("http://...");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章