ホームページ  >  記事  >  バックエンド開発  >  PHPマルチプロセスでのcurl_multiの適用

PHPマルチプロセスでのcurl_multiの適用

大家讲道理
大家讲道理オリジナル
2017-05-28 09:37:581987ブラウズ

PHP マニュアル では不明瞭な、curl_multi ファミリーの関数について頭を悩ませている人は多いと思います。また、記載されている例は非常に単純なので、そこから学ぶことはできません。 Web ページはありますが、完全なアプリケーション例は見つかりませんでした。

    curl_multi_add_han
  • dl

    e

  • curl_multi_close
  • cu rl_multi_exec
  • curl_multi_getcontent
  • curl_ multi_ info_read
  • curl_multi_init
  • curl_multi_remove_handle
  • curl_multi_select
  • 一般に、これらの関数を使用することを考えるとき、その目的は明らかに、1 つずつリクエストするのではなく、複数の URL を同時にリクエストすることです。それ以外の場合は、curl_exec を自分で調整することをお勧めします。

ステップは次のように要約されます: ステップ 1:curl_multi_init を呼び出す

ステップ 2:ループ内でcurl_multi_add_handleを呼び出す

このステップでは、curl_multi_add_handle の 2 番目のパラメーターがcurl_init のサブハンドルであることに注意してください。

ステップ 3: 引き続きcurl_multi_execを呼び出します

ステップ 4: 必要に応じてループ内でcurl_multi_getcontentを呼び出し、結果を取得します
ステップ 5:curl_multi_remove_handleを呼び出し、単語ハンドルごとにcurl_closeを呼び出します
ステップ6:curl_multi_closeを呼び出します

オンライン検索はこちらですその作成者が
dir
ty サンプルと呼ぶものの簡単な例 (なぜダーティなのかは後で説明します):

/*
これは、PHP のcurl-multi の簡単で汚い例です。PHP 5.0.0RC1 CLI / FreeBSD 5.2.1 でテストされています
*/PHPマルチプロセスでのcurl_multiの適用<img src=mains = array (
"http://www.cnn.com/"、PHPマルチプロセスでのcurl_multiの適用foreach ($connomains as $i => $url) {
$conn[$i]=curl_init($url);PHPマルチプロセスでのcurl_multiの適用 curl_se<img src= topt ($conn[$i],CURLOPT_RETURNTRANSFER,1); mh,$active); } while
($active);PHPマルチプロセスでのcurl_multiの適用<img src= curl_close($conn[$i]);
}PHPマルチプロセスでのcurl_multiの適用<img src=print
_r($res); PHPマルチプロセスでのcurl_multiの適用 <img src=インターフェースはCのものとは実際に異なります。

上記の do 段落を次のように変更します:

all
_multi_perform); $active は false になる前にすべての URL データを受信するまで待つ必要があるため、ここでデータが存在するかどうかを判断するためにcurl_multi_exec の戻り値が使用されます。データが存在する場合は、一時的にデータが存在しない場合は、curl_multi_exec が継続的に呼び出されます。 、選択ステージに入ります。 New データが到着するとすぐに実行を継続するために起動できます。この場合の利点は、CPU を不必要に消費しないことです。 PHPマルチプロセスでのcurl_multiの適用さらに: 時々発生する可能性のある詳細がいくつかあります: <img src=各リクエストのタイムアウトを制御します。curl_multi_add_handle の前に、curl_set
opt を通して実行します: curl_setopt($ch, CURLOPT_
TIMEOUT , $timeout) ;
タイムアウトまたはその他のエラーがあるかどうかを判断するには、curl_multi_getcontent の前に、curl_error($conn[$i]);
PHPマルチプロセスでのcurl_multiの適用<img src= を使用します。

以上がPHPマルチプロセスでのcurl_multiの適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。