关于在 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);
?>
经过查询是 SSL 的问题 经phpinfo比对后发现 可用的服务器 curl 是openssl ,不可用的curl 是nss 默认服务安装的是 nss .