この記事の例では、foreach とcurl を組み合わせて使用して、PHP でマルチスレッドを実現する方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:
マルチスレッドは PHP ではサポートされていませんが、foreach を使用して疑似マルチスレッドにすることができますが、この疑似マルチスレッドは必ずしもシングルよりも高速であるとは限りません具体的には、例を見てみましょう。
foreach ステートメントを使用して画像 URL をループし、CURL を介してすべての画像をローカルに保存する場合、1 つしか収集できないという問題が発生します。
方法 1: ループ リクエスト
上記のコードで特別な注意が必要なのは、curl_close が foreach ループの内側に配置されている場合、その外側に配置する必要があることです。複数の IMGURL は 1 つの URL しか収集できません。
方法 2: マルチスレッド ループ
$sr=array(url_1,url_2,url_3); foreach ($sr as $k=>$v) { $curlPost=$v.'?f=传入参数'; $ch = curl_init($curlPost) ; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回 curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回 $data = curl_exec($ch) ; echo $k.'##:'.$data.'<br>'; } curl_close($ch);
ここでは主に、curl_multi_init() を使用して複数の URL リクエストを実装します。マルチスレッドをサポートしているため、擬似マルチスレッドの速度が必ずしもシングルスレッドの速度より速いとは限りません
この記事が PHP プログラミングのすべての人に役立つことを願っています。
PHP でマルチスレッドを実現するために、curl と組み合わせた foreach メソッドの詳細な分析については、PHP 中国語 Web サイトに注目してください。