PHP による HTTPS Web ページのコンテンツ メソッドとエラー処理のクロール
HTTPS Web ページのコンテンツをクロールする PHP メソッドとエラー処理
最近、Hacker News API を調査中に HTTPS の問題に遭遇しました。すべての Hacker News API は通常の HTTP プロトコルとは異なる暗号化された HTTPS プロトコルを介してアクセスされるため、PHP の関数 file_get_contents() を使用して API で提供されるデータを取得すると、次のコードがエラーになります。 :
<?php $data = file_get_contents("https://www.scutephp.com"); ......
上記のコードを実行すると、次のエラー メッセージが表示されます:
PHP Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
このエラーはなぜ発生しますか?
インターネットで検索すると、多くの人がこのエラーに遭遇していることがわかりました。これは、私のローカル マシンの /apache/ で有効なパラメータがないことが原因です。 bin/php .ini 内の項目 ;extension=php_openssl.dll では、先行するセミコロンを削除する必要があります。次のスクリプトを使用して、PHP 環境の構成を確認できます:
$w = stream_get_wrappers(); echo 'openssl: ', extension_loaded ('openssl') ? 'yes':'no', "\n"; echo 'http wrapper: ', in_array('http', $w) ? 'yes':'no', "\n"; echo 'https wrapper: ', in_array('https', $w) ? 'yes':'no', "\n"; echo 'wrappers: ', var_dump($w);
上記のスクリプト スニペットを実行すると、私のマシンでの結果は次のようになります:
openssl: no http wrapper: yes https wrapper: no wrappers: array(10) { [0]=> string(3) "php" [1]=> string(4) "file" [2]=> string(4) "glob" [3]=> string(4) "data" [4]=> 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); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); curl_close($ch); return $result; }

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP は、Web サイト開発で広く使用されている非常に人気のあるサーバー側プログラミング言語です。中でもファイルのアップロードとダウンロードはWebサイトでよく使われる機能の1つであり、PHPはこれらの機能を実現するための機能や技術を豊富に提供しています。この記事では、ウェブサイトをより効率的に開発できるように、PHP でのファイルのアップロードとダウンロードのテクニックを詳しく紹介します。ファイルのアップロード ファイルのアップロードとは、ローカル コンピュータからリモート サーバーにファイルを送信することを指し、ファイルをアップロードした後、これらのファイルを保存、処理、表示できます。 PHPの場合

PHP Kuaishou API インターフェイス呼び出しのヒント: インターフェイスから返されるエラー情報の処理方法 PHP を使用して Kuaishou API インターフェイスを呼び出すと、インターフェイスがエラーを返す状況がよく発生します。処理インターフェイスから返されたエラー情報については、アプリケーションの安定性とユーザー エクスペリエンスを向上させるために、適切な処理とフィードバックを提供する必要があります。この記事では、インターフェイスから返されるエラー情報を処理するためのいくつかの手法を紹介し、対応するコード例を示します。 try-catch を使用して例外をキャッチします。API インターフェイスを呼び出すときに、いくつかの例外エラーが発生する場合があります。

インターネットの急速な発展に伴い、ユーザーのブラウジング エクスペリエンスを向上させるためにデータ ページング機能を実装する必要がある Web サイトがますます増えています。 Web開発においてPHPは最も人気のあるサーバーサイドプログラミング言語の1つであり、データページング機能はPHP開発において欠かせない技術です。この記事では、フレームワークにおける PHP のページング テクノロジの適用方法を紹介し、さまざまなページング ソリューションの長所と短所を比較します。 1. 従来の PHP ページング手法 従来の PHP 開発では、データ ページング機能を実装するには大量のコードを記述する必要があり、それを各ページで繰り返す必要がありました。

PHP プログラミング スキル: 画像のスケーリングを処理する方法 最新の Web デザインでは、画像は不可欠な部分であり、画像のスケーリングは一般的な操作の 1 つです。画像のコレクションを表示する場合でも、さまざまなサイズのデバイスのニーズに対応する場合でも、画像のスケーリングは重要な役割を果たします。この記事では、PHP プログラミング言語を使用して画像のスケーリングを処理する方法を紹介し、参考用のコード例を添付します。 1. 画像のスケーリングに GD ライブラリを使用する GD ライブラリは PHP の強力な画像処理ライブラリであり、画像のスケーリング機能を実装するために使用できます。まず、確認してください

PHP プログラミングのヒント: 配列内で欠落している数値をすばやく見つける方法 プログラミングでは、配列内で特定の数値が欠落しているかどうかを確認する必要がある状況によく遭遇します。現時点では、欠落している数値をタイムリーに処理できるように、配列内で欠落している数値を見つけ出す迅速かつ効果的な方法が必要です。この記事では、PHP ベースのプログラミング手法を紹介し、具体的なコード例を使用して、配列内の欠落している数値をすばやく見つける方法を示します。 1. 方法 1: ループを使用して配列を走査する まず、配列をループして、配列内の欠落している数値をチェックします。具体的な手順

PHP での改行の置換は、実際の開発、特にテキスト データを処理する場合によく発生する問題です。改行文字はオペレーティング システムによって表現方法が異なる場合があります。通常、Windows システムでは ""、Linux システムでは "" が使用されます。したがって、テキスト データが通常の形式であることを保証するために、改行を均一に処理する必要があります。この記事では、PHP で改行を置換する手法を詳しく説明し、具体的なコード例を示します。 1. PHP 組み込み関数を使用して改行を処理する PHP にはいくつかの組み込み関数が用意されています。

PHP の高度な同時処理スキルの分析 インターネットの発展に伴い、Web サイトへの同時アクセスの要件はますます高くなっています。 Web サイト開発用のプログラミング言語である PHP には、同時アクセスの負荷が高い場合にパフォーマンスと安定性を向上させるための特別な処理スキルが必要です。この記事では、PHP の高度な同時処理手法をいくつか紹介し、コード例を示します。 PHP-FPMPHP-FPM (FastCGIProcessManager) は、PHP によって公式に提供されているプロセス マネージャーです。

タイトル: PHP クエリ ステートメント最適化のヒントの共有 Web アプリケーションを開発する場合、データベース クエリの最適化は重要なリンクであり、アプリケーションのパフォーマンスと応答速度を大幅に向上させることができます。 PHP では、クエリ ステートメントを最適化すると、データベースの負担が効果的に軽減され、システムのパフォーマンスが向上します。この記事では、PHP クエリ ステートメントの最適化手法と具体的なコード例をいくつか紹介します。 1. インデックスの使用 データベース テーブルにインデックスを適切に作成すると、データ クエリを高速化できます。 PHP では、クエリ ステートメントで使用されるインデックスを指定できます。
