我遇到了这个功能的问题。它适用于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
答案 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)。