CURL https给出错误

时间:2013-01-25 05:42:19

标签: php facebook facebook-graph-api curl

我遇到了这个功能的问题。它适用于http,但在使用https时不会返回任何内容。我正在使用facebook的网址来发布所有公共群组。

function fetchUrl($url)
{
    $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_TIMEOUT, 20);

     $retData = curl_exec($ch);
     curl_close($ch); 

     return $retData;
}

我见过的唯一方法是通过简单的php html dom解析器抓取url并将其转换为数组。但是,我觉得有更好的方法,或者可以对现有功能进行一些更改。我哪里错了?

仅供参考:我在php.ini中启用了openSSL

1 个答案:

答案 0 :(得分:0)

尝试添加这些选项

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

引用PHP手册

  

CURLOPT_SSL_VERIFYHOST:1来检查是否存在公用名   SSL对等证书。 2检查是否存在通用名称   并验证它是否与提供的主机名匹配。

     

CURLOPT_SSL_VERIFYPEER:FALSE停止CURL验证对等方的   证书。可以指定要验证的备用证书   使用CURLOPT_CAINFO选项或证书目录即可   使用CURLOPT_CAPATH选项指定。 CURLOPT_SSL_VERIFYHOST可以   如果禁用CURLOPT_SSL_VERIFYPEER,也需要为TRUE或FALSE   (默认为2)。