【发布时间】:2016-07-17 22:22:33
【问题描述】:
此函数返回 null 并打印错误:
无法解析主机“www.xxx.com”
function file_get_html_using_cURL($url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
echo "\n--------------------\n";
print_r(curl_getinfo($ch));
echo "\n--------------------\n";
}
$output = str_get_html($output); // <-- Important line to convert string into object!
curl_close($ch);
return $output;
}
当我在 localhost 中加载此代码时,它可以工作。但是当我将它上传到远程服务器时它会抛出错误。
我猜测远程服务器已阻止 CURL 执行。
这是一个免费服务器,所以我无法更改 php.ini 中的任何设置
有没有办法解决这个问题?
附:
file_get_content($url)
也被阻止。所以我尝试使用 curl 代替。但不是 curl 似乎不再起作用了。
【问题讨论】:
-
您能 ping 任何主机吗?ping google.com?如果没有,则编辑 /etc/resolv.conf 并放置一行 nameserver 8.8.8.8
-
我认为是您的 dns 的问题。请联系您的系统管理员并检查防火墙
-
@ChetanAmeta 服务器管理员说 php curl 应该可以正常工作。这是PHP设置。 112.175.184.89/phptest.php 是不是和DNS无关的东西?对不起,我是初学者..
-
尝试在服务器的终端上ping域也可以在关闭防火墙后尝试
标签: php curl file-get-contents