curl_exec总是返回0?

时间:2011-06-08 22:54:36

标签: php session cookies curl

我有这个功能:

function Connect($url, $post = 0, $postfields = '') 
{
    $ch = curl_init();
    if($post > 0) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    } 
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/joomla-cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/joomla-cookie.txt');
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $exec = curl_exec($ch);
    if($exec) { return $exec; } else { return 0; }
}

我称之为Connect($host)

它总是返回0 ......

2 个答案:

答案 0 :(得分:2)

尝试将CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST设置为false。应该这样做。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

答案 1 :(得分:1)

在curl_exec:

之后检查请求是否有错误
if(curl_errno($ch)){
    echo 'Curl error: ' . curl_error($ch);
}

这将为您提供足够的信息,以了解请求是否有错误。如果没有错误,您可以检查curl_exec之后发送的请求,以便您可以仔细检查发送的所有内容是否已就位:

print_r(curl_getinfo($ch));