关于在 PHP 中 CURL 远程获取网页数据的问题.

关于在 PHP 中 CURL 远程获取网页数据的问题.
需要抓取词典的内容 ,本地测试可以 但是放在服务器上就返回 FALSE .

看到之前有人提出相关问题 https://segmentfault.com/q/10...
但是加上了 CURLOPT_USERAGENT 还是无效 大神帮忙看看

<?php
function curl_get_contents($url, $timeout = 15) { 

    // dump($url);
    $curlHandle = curl_init(); 
    curl_setopt( $curlHandle , CURLOPT_URL, $url ); 
    curl_setopt( $curlHandle , CURLOPT_RETURNTRANSFER, 1 ); 
    curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
    curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curlHandle,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
    curl_setopt( $curlHandle , CURLOPT_TIMEOUT, $timeout ); 
    // dump(curl_error($curlHandle));

    // dump($curlHandle);
    $result = curl_exec( $curlHandle ); 
    curl_close( $curlHandle ); 
    return $result; 
} 


$url = "https://www.ldoceonline.com/dictionary/january";


    $html = curl_get_contents($url, 60);

    var_dump($html);

?>
蓝山帝景
浏览 458回答 4
4回答

心有法竹

经过查询是 SSL 的问题 经phpinfo比对后发现 可用的服务器 curl 是openssl ,不可用的curl 是nss 默认服务安装的是 nss .

桃花长相依

我看了下你写的请求没什么问题,你把 USERAGENT 换成 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 应该是网站内部的限制,curl 请求就正常模拟 pc 端访问时的头部与参数,大部分时没啥问题的。

炎炎设计

谢邀。首先,我看到有注释的dump存在,说明你曾经想断点打印信息,我个人比较喜欢使用error_log函数将调试信息打印在文件中,然后使用tail -f来监控输出。这样不中断程序执行,效果也更实时。然后,对于你的问题,信息确实有点少,建议你把curl_getinfo的信息打印出来看看

蝴蝶不菲

你服务器上面有没有安装crul扩展?
打开App,查看更多内容
随时随地看视频慕课网APP