以下是使用cURL的方式来请求来生成并发请求
<?php
function makeConcurrentRequests($urls) {
$mh = curl_multi_init();
$chs = [];
// 初始化每个请求的 cURL 句柄
foreach ($urls as $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch);
$chs[] = $ch;
}
$running = null;
// 执行并发请求
do {
curl_multi_exec($mh, $running);
} while ($running > 0);
$results = [];
// 获取每个请求的结果
foreach ($chs as $i => $ch) {
$results[$i] = curl_multi_getcontent($ch);
curl_multi_remove_handle($mh, $ch);
curl_close($ch);
}
curl_multi_close($mh);
return $results;
}
// 示例 URL 列表
$urls = [
'https://jsonplaceholder.typicode.com/posts/1',
'https://jsonplaceholder.typicode.com/posts/2',
'https://jsonplaceholder.typicode.com/posts/3'
];
$results = makeConcurrentRequests($urls);
foreach ($results as $index => $result) {
echo "Result from URL " . ($index + 1) . ":\n";
echo $result . "\n\n";
}
?>
curl的并发样例如上述代码,但可以更具自己的要求进行优化,但大体上是可以使用的