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中文网其他相关文章!