file_get_contentsは無いコンテンツでHTTPSページを取得するプロジェクトに発生した問題を行います -
file_get_contentsは、多くの場合、物事の素敵なコレクションですが、これのために、今多くのサイトが予防治療だった、それだけでは頭の中に統合する必要があります。そして、これは、転送CURLの最高の時間です。コレクションは、今日HTTPSページ、CURLもHTTPS証明書発行のために、実際には、コマンドを増やす必要があり、これは非常に単純なプロセスです。実際には、キーは次の2つのオプションです。
CURLOPT_SSL_VERIFYPEER CURLOPT_SSL_VERIFYHOST
HTTPS証明書の検証は、私たちが自然の友人を収集する必要はありませんかどうかを確認します。私たちは、いくつかのHTTPSサイトを開くことができ、ブラウザを使用すると、証明書がクラスと一致していませんアクセスしたページを促し、その後、あなたが理由にアクセスするには、[続行]をクリックしますと思います。以下は、メソッドをカプセル化し、それが使用するのは簡単です。
関数curlPost($ URL、$データ=配列()、$タイムアウト= 30) { $ SSL = SUBSTR($ URL、0、8)== "https://で"?真/偽; $ CH = curl_init(); $ OPT =配列( CURLOPT_URL => $ URL、 CURLOPT_POST => 1、 CURLOPT_HEADER => 0、 CURLOPT_POSTFIELDS =>(配列)$データ、 CURLOPT_RETURNTRANSFER => 1、 CURLOPT_TIMEOUT => $タイムアウト )。 IF($ SSL) { $ OPT [CURLOPT_SSL_VERIFYHOST] = 1。 $ OPT [CURLOPT_SSL_VERIFYPEER] = FALSE; } curl_setopt_array($ chの、$ OPT)。 $データ= curl_exec($ chの); curl_close($ chの); $データを返します。 }
この方法は、使用することは非常に簡単で、非常に簡単です:
$データ= curlPost( 'https://www.baidu.com');
自動的に2番目のパラメータを認識します最初のパラメータアドレスは、提出された証明書を使用する必要がある、とされていません。非常に素晴らしいですよ。
----------
よりhttps://www.cnblogs.com/lbnnbs/p/3920442.html 追加:
カールコンテンツHTTPS要求を、空の戻り
$をcurl_init CH =();
ますcurl_setopt($ CH、$ APIへCURLOPT_URL);
ますcurl_setopt($ CH、 CURLOPT_RETURNTRANSFER、1); //は、検索された直接禁止重要の内容を表示し
ますcurl_setopt($ chの、CURLOPT_SSL_VERIFYPEER、偽の ); //は、 証明書に以下同じ検証しません
しますcurl_setopt($ CH、CURLOPT_SSL_VERIFYHOST、偽の); //
$ JSON = curl_exec($ CH ); // GET
curl_close($ chの);