curl函数返回libcurl中不支持或禁用协议http

时间:2015-10-09 10:16:09

标签: php http curl

我面临这个功能的问题:

function curl_function($uri) 
{    
    $ch = curl_init($uri);
    $timeout = 30; //set to zero for no timeout
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_USERAGENT, 'mycoreg');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    $file_contents = curl_exec($ch);
    $errornum      = curl_errno($ch);
    $info          = curl_getinfo($ch);
    $status        = (int) $info['http_code'];
    if ($errornum !== 0) {
        echo 'Error: ', curl_error($ch);
        $file_contents = NULL;
    }
    curl_close($ch);

    return $file_contents;
}

它给出了错误

"http protocol is not supported or disabled".

PLZ需要帮助。 感谢。

2 个答案:

答案 0 :(得分:2)

调试打印您的URL并确保它不包含任何无关的字符。

在我的情况下,引用了我使用php curl的URL。卷曲错误处理不会打印报价,因此错误相当混乱,难以追踪。

您可以使用以下代码生成此错误:

// wrong
$uri = "'". "http://www.google.com/" . "'"; // quoted string
curl_setopt($ch, CURLOPT_URL, $url);

现在尝试使用正确的网址格式...

// right
$uri = "http://www.google.com/"; // correct format URL
curl_setopt($ch, CURLOPT_URL, $url);

答案 1 :(得分:1)

像这样更新你的函数以避免一些奇怪的错误:)

function curl_function($uri) {
    $uri = trim($uri); 
    // ... your code  
}