PHP 中的HTTP 請求:透過並行性提高效率
在效能至關重要的情況下,最佳化HTTP 請求的處理變得至關重要。 PHP 的預設方法 file_get_contents($url) 會依序處理請求,因此在涉及多個請求的場景中會導致延遲。
克服此限制的一個解決方案是並行處理,即同時執行多個請求。 PHP 本身並沒有提供此功能,但像 cURL 這樣的函式庫提供了實作並行化的機制。
用於平行請求的多 cURL:
多 cURL 允許並行執行HTTP 請求,顯著提高效率。以下是利用 multi-cURL 的範例腳本:
<?php // Define an array of URLs $nodes = array( $url1, $url2, $url3 ); // Initialize cURL handles $curl_arr = array(); $master = curl_multi_init(); $node_count = count($nodes); for ($i = 0; $i < $node_count; $i++) { $url = $nodes[$i]; $curl_arr[$i] = curl_init($url); curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($master, $curl_arr[$i]); } // Execute the requests in parallel do { curl_multi_exec($master, $running); } while ($running > 0); // Retrieve and store the results $results = array(); for ($i = 0; $i < $node_count; $i++) { $results[] = curl_multi_getcontent($curl_arr[$i]); } // Display or process the results print_r($results); ?>
透過使用 multi-cURL,該腳本同時向指定的 URL 發送請求。然後將結果儲存在 $results 陣列中以供進一步處理或顯示。
這種方法顯著減少了處理多個請求所需的時間,使其成為並行執行至關重要的效能密集場景的有效解決方案。
以上是並行 HTTP 請求如何提升 PHP 的效率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!