PHP と HTTPS

WBOY
リリース: 2016-07-25 08:59:53
オリジナル
1531 人が閲覧しました

最近、Hacker News API を調査中に HTTPS の問題に遭遇しました。すべての Hacker News API は、通常の HTTP プロトコルとは異なる暗号化された HTTPS
プロトコルを通じてアクセスされるため、API で提供されるデータを取得するために PHP の関数 file_get_contents() を使用すると、エラーが発生します。このように:
$data =file_get_contents("https://hacker-news.firebaseio.com/v0/topstories.json?
print=pretty");
。 .....
上記のコードを実行すると、次のエラー メッセージが表示されます:
PHP 警告: file_get_contents(): ラッパー "https" が見つかりません -
を有効にするのを忘れましたかPHP を設定したときにこのエラーが発生するのはなぜですか?
インターネットで検索したところ、多くの人がこのエラーに遭遇していることがわかりました。私のローカル マシンでは、PHP 設定ファイルに
enabled パラメータがないためです。 /bin/php.ini の項目 ;extension=php_openssl.dll では、その前のセミコロンを削除する必要があります。次のスクリプトを使用して、PHP 環境の構成を確認できます:
$w = stream_get_wrappers();
echo 'openssl: ', extension_loaded ('openssl') 'yes':'no', " n";
echo 'http ラッパー: ',in_array('http', $w) ? 'yes':'no', "n";
echo 'https ラッパー: ',in_array('https', $ w) ? 'yes':'no', "n";
echo 'wrappers: ',var_dump($w);
上記のスクリプト スニペットを私のマシンで実行すると、結果は次のようになります:
openssl: no
http ラッパー: はい
https ラッパー: いいえ
wrappers: array(10) {
[0]=>
string(3) "php"
[1] =>
string(4) "ファイル"
[2]=>
string(4) "glob"
[3]=> ]=>
string(4) "http"
[5 ]=>
string(3) "ftp"
[6]=>
string(3) "zip"
[ 7]=>
string(13) "compress.zlib"
[8]=>
string(14) "compress.bzip2"
[9]=>
string(4) " phar"
}
代替手段
エラーを見つけて修正しますこれは非常に簡単ですが、難しいのは、エラーを見つけた後は修正できないことです。当初はこのスクリプト メソッドをリモート ホストに配置したいと考えていましたが、リモート ホストの PHP 構成を変更できなかったので、このソリューションを使用できませんでしたが、これをツリーにハングアップすることはできません。道路が通行止めになっている場合は、別の道がないか確認してください。
PHP でコンテンツをキャプチャするために私がよく使用するもう 1 つの関数は、file_get_contents() よりも強力で、多くのオプションのパラメーターを提供します。 HTTPS コンテンツへのアクセスの問題については、使用する必要がある CURL 構成パラメーターは次のとおりです:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
セマンティクスから、SSL セキュリティ検証を無視/スキップすることがわかります。これは良い習慣ではないかもしれませんが、通常のシナリオ
ではこれで十分です。
以下は、HTTPS コンテンツにアクセスできる Curl によってカプセル化された関数です。
function getHTTPS($url) {
$ch =curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ ch、curlopt_followlocation、true);
curl_setopt($ ch、curlopt_url、$ url);
$result =curl_exec($ch);
curl_close($ch); 詳細については、公式ウェブサイトのカスタマーサービスをご覧ください:
http://www.lampbrother.net
http: //yun.itxdl.cn/online/cto/index.php?u=5
This
牛、一は牛です -X
コース
CTO
コース http://yun.itxdl.cn/online/server/index.php?U =5 モバイルインターネットサーバーサイド開発コースhttp://yun.itxdl.cn/online/ weixin/index.php?u=5 WeChat開発コース
http://yun.itxdl.cn/online/yingxiao/index.php?u=5マイクロマーケティングコース
http://yun.itxdl.cn/online/phpcms/index.php?u=5phpcms二次開発コース
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート