簡體   English   中英

PHP curl 返回錯誤:無法解析主機“www.xxx.com”。 我該如何解決這個問題?

[英]PHP curl returns error: Couldn't resolve host 'www.xxx.com'. How can I solve this?

此函數返回 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;
}

當我在本地主機中加載此代碼時,它可以工作。 但是當我將它上傳到遠程服務器時它會拋出錯誤。

我猜測遠程服務器已阻止 CURL 執行。

這是一個免費的服務器,所以我無法更改 php.ini 中的任何設置

有沒有辦法解決這個問題?

聚苯乙烯

file_get_content($url)

也被屏蔽了。 所以我嘗試使用 curl 代替。 但不是 curl 似乎不再起作用了。

請檢查以下代碼並驗證您的服務器問題。

$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)); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM