ホームページ  >  記事  >  バックエンド開発  >  file_get_contents の分析と、curl の効率と安定性について説明します_PHP チュートリアル

file_get_contents の分析と、curl の効率と安定性について説明します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:08:24963ブラウズ

私は他の Web サイトからコンテンツをキャプチャする多くの製品に携わっており、便利で高速な file_get_contents 関数の使用には慣れていますが、次の例に従ってタイムアウトを設定しても、常に取得に失敗するという問題に遭遇します。マニュアルに従っても、ほとんどの場合機能しません:

コードをコピー コードは次のとおりです:

$config['context'] = stream_context_create(array('http' => array(' method' => "GET",
'timeout' => 5//このタイムアウトは不安定で、動作しないことがよくあります
)
));

このとき、サーバーの接続プールを見ると、同様のエラーがたくさん見つかり、頭が痛くなるでしょう:
file_get_contents(http://***): ストリームを開けませんでした...
最後の手段として、curl ライブラリをインストールして次のように書きました。関数の置き換え:
コードをコピーします コードは次のとおりです:

関数 curl_file_get_contents($durl{
$ch = curl_init( );
curl_setopt($ch,,$durl);
curl_setopt<スパン スタイル="color:#009900">(
$ch,< /span> CURLOPT_TIMEOUT, );
curl_setopt($ch,< ;/スパン> CURLOPT_USERAGENT _USERAGENT_);
curl_setopt($chCURLOPT_REFERER_REFERER_);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) /span>;
$r = curl_exec( $ch);
curl_close($ch);
return $r;
}

したがって、実際のネットワークの問題以外の問題はなくなりました。
これは他の人が行ったcurlとfile_get_contentsに関するテストです:
file_get_contentsがgoogle.comをクロールするのにかかる秒数: 092
カールの使用時間:

0.68719101
0.64675593
0.64326
0.819831130.63956594
大きなギャップはありますか?あはは、私の経験から言えば、これら 2 つのツールは速度が異なるだけでなく、安定性も異なります。ネットワーク データ キャプチャの安定性に対する要求が高い友人には、安定して高速であるだけでなく、ブラウザを偽装してターゲット アドレスを偽装することもできる、上記のcurl_file_get_contents 関数を使用することをお勧めします。




http://www.bkjia.com/PHPjc/327449.html
www.bkjia.com

tru​​e

技術記事私は他の Web サイトからコンテンツをキャプチャする製品を数多く作成しており、便利で高速な file_get_contents 関数の使用には慣れていますが、マニュアルの例に従って設定しても、ファイルを取得できないという問題が常に発生します。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。