ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルにおける file_get_contents とcurlのパフォーマンス効率の比較

PHP_PHP チュートリアルにおける file_get_contents とcurlのパフォーマンス効率の比較

WBOY
WBOYオリジナル
2016-07-13 10:22:401411ブラウズ

PHP での file_get_contents とcurl のパフォーマンス効率の比較

この記事では、PHP での file_get_contents とcurl のパフォーマンス効率のいくつかの比較を共有します。記事の内容はインターネットから収集したものです。不正確な点がある場合は、修正するためにメッセージを残していただけます。

(1) fopen/file_get_contents は、リモート URL 内のデータが要求されるたびに DNS クエリを再実行し、DNS 情報をキャッシュしません。ただし、CURL は DNS 情報を自動的にキャッシュします。同じドメイン名の Web ページまたは画像に対するリクエストには、DNS クエリが 1 つだけ必要です。これにより、DNS クエリの数が大幅に削減されます。したがって、CURL のパフォーマンスは fopen/file_get_contents よりもはるかに優れています。

(2) fopen/file_get_contents が HTTP リクエストを行う場合、http_fopen_wrapper を使用し、keeplive を行いません。しかしカールならできる。このようにして、複数のリンクを複数回リクエストする場合、curl はより効率的になります。 (ヘッダーも設定できるはず)

(3) fopen/file_get_contents 関数は、php.ini ファイルのallow_url_open オプション設定の影響を受けます。設定がオフになっている場合、この機能は無効になります。 Curl はこの設定の影響を受けません。

(4)curl は、POST データ、フォーム送信など、さまざまなリクエストをシミュレートできます。ユーザーは、独自のニーズに応じてリクエストをカスタマイズできます。また、fopen/file_get_contents は get メソッドのみを使用してデータを取得できます。

(5) fopen/file_get_contents がバイナリファイルを正しくダウンロードできません。

(6) fopen/file_get_contents は ssl リクエストを正しく処理できません。

(7)curlはマルチスレッドを利用できます。

(8) file_get_contentsを使用する際にネットワークに問題がある場合、ここでいくつかの処理が蓄積されやすくなります。

(9) 継続的に接続したい場合は、複数のページを複数回リクエストしてください。その場合、file_get_contents に問題が発生します。取得した内容が正しくない場合もあります。したがって、同様の収集作業を行う場合は、代わりにcurlを使用するのがより正しい選択です。

興味がありそうな記事

  • curlのpostを使ってデータを送信する方法とPHPのgetを使ってWebページのデータを取得する方法をまとめました
  • PHP関数memory_get_usageを使って現在のPHPのメモリ消費量を取得し最適化するプログラムのパフォーマンス
  • php実行時の未定義関数curl_initの呼び出しエラーの解決方法
  • phpプロンプト未定義関数curl_init()の呼び出しエラーの解決方法
  • PHPにおけるreturnとexit、breakとcontiueの違いと使い方
  • $this、phpのstatic、final、const、self、その他のキーワード
  • PHPのフィルタ機能を使ってメール、URL、IPアドレスを検証する方法
  • PHPで短縮URLを生成する考え方と実装方法

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/846810.html技術記事 PHP における file_get_contents とcurl のパフォーマンス効率の比較 この記事では、PHP における file_get_contents とcurl のパフォーマンス効率の比較をいくつか紹介します。記事の内容はネット上からまとめたものです、間違い等ある場合は...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。