1

我在使用此功能时遇到问题。它适用于http但在使用时不返回任何内容https。我正在使用 facebook 的 url 来获取所有公共团体的帖子。

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

4

1 回答 1

1

尝试添加这些选项

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_VERIFYPEER 被禁用(默认为 2),CURLOPT_SSL_VERIFYHOST 也可能需要为 TRUE 或 FALSE。

于 2013-01-25T05:51:24.313 回答