1. fopenの使い方
コードをコピー コードは次のとおりです:
$handle = fopen ("http://s.jb51.net/", "rb" );
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle); //出力取得したコンテンツ。
s.jb51.net", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
echo $contents;
しかし、上記のコードは次のような傾向があります。ストリームを開けませんでした: HTTP リクエストが失敗しました! エラー、解決策 php.ini には 2 つのオプションがあると言う人もいます:allow_url_fopen =on (URL を通じてリモート ファイルを開くことができることを示す)、user_agent="PHP" (どちらであるかを示す)ネットワークにアクセスするためのスクリプト。デフォルトではその前に「;」があり (これを削除し)、サーバーを再起動します。 ただし、この警告メッセージがまだ表示されている人もいます。これを完全に解決するには、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.curlで実装します
コードをコピーします
コードは次のとおりです:
exec("wget {$url}"); PHP の外部リソース関数 fopen / file_get_contents fopen / の違いfile_get_contents はクエリ要求ごとに DNS を再実行します。DNS 情報はキャッシュされません。 ただし、CURL は DNS 情報を自動的にキャッシュします。同じドメイン名の Web ページまたは画像に対するリクエストには、DNS クエリが 1 つだけ必要です。 これにより、DNS クエリの数が大幅に削減されます。
つまり、CURL のパフォーマンスは fopen/file_get_contents よりもはるかに優れています。当サイトのオリジナルコンテンツ、転載の際は出典を明記してください。
上記では、PHP がリモート Web コンテンツを取得するための fopen とcurl コードを紹介しました。これには、関連するコンテンツも含まれています。PHP チュートリアルに興味のある友人に役立つことを願っています。