PHP curl 返回错误:无法解析主机"www.xxx.com"。我该如何解决这个问题?



此函数返回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 中的任何设置

有办法解决这个问题吗?

p.S.

file_get_content($url)

也被阻塞。所以我试着用卷发代替。但不卷曲似乎已经不起作用了。

请检查以下代码并验证您的服务器问题。

$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPGET, 1);
curl_setopt($curl, CURLOPT_URL, 'YOUR_URL' );
curl_setopt($curl, CURLOPT_DNS_USE_GLOBAL_CACHE, false );
curl_setopt($curl, CURLOPT_DNS_CACHE_TIMEOUT, 2 );
var_dump(curl_exec($curl));
var_dump(curl_getinfo($curl));
var_dump(curl_error($curl)); 

最新更新