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 に答える