この記事では、fopen メソッドやcurl メソッドなど、PHP で実装されたリモート Web コンテンツを取得するいくつかの方法を紹介します。必要な方は参考にしてください。
いくつかの PHP コードを共有して、リモート Web ページのコンテンツを取得します。 1. fopenメソッド リーリーエラーが発生した場合: ストリームを開けませんでした: HTTP リクエストが失敗しました!。 解決策: php.ini には、allow_url_fopen =on (リモート ファイルを URL 経由で開くことができることを示します)、user_agent="PHP" (ネットワークへのアクセスにどのスクリプトが使用されるかを示します。デフォルトでは、「;」が含まれます) という 2 つのオプションがあります。サーバーを再起動します。 以下に示すように: 完璧な解決策: php.ini で user_agent を設定します。php のデフォルトの user_agent を Mozilla/4.0 (互換性のある、MSIE 6.0、Windows NT 5.0) に変更します。 user_agent="Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.0)" 2.カール方法 リーリー注: 次のコードを使用して、Linux でダウンロードできます。 exec("wget {$url}"); PHP の外部リソース取得関数 fopen、file_get_contents、curl の違い: 1. fopen/file_get_contents は、リクエストごとに DNS クエリを再実行し、DNS 情報をキャッシュしません。 2. CURL は DNS 情報を自動的にキャッシュします。同じドメイン名の Web ページまたは画像に対するリクエストには、DNS クエリが 1 つだけ必要です。 これにより、DNS クエリの数が大幅に削減されます。 したがって、CURL のパフォーマンスは fopen や file_get_contents よりも優れているため、CURL を使用することをお勧めします。 |