php 并发curl列子
时间: 2024-02-27 07:50:01 浏览: 32
PHP是一种广泛使用的服务器端脚本语言,特别适用于Web开发。它具有简单易学、开发效率高等特点,并且支持多种数据库。PHP可以通过curl库实现并发请求,以下是一个简单的并发curl的示例:
```php
<?php
// 创建curl多个句柄
$mh = curl_multi_init();
// 创建多个curl请求
$urls = array(
'https://www.example.com/api1',
'https://www.example.com/api2',
'https://www.example.com/api3'
);
$curl_handles = array();
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);
$curl_handles[] = $ch;
}
// 执行并发请求
$running = null;
do {
curl_multi_exec($mh, $running);
} while ($running > 0);
// 获取响应结果
$responses = array();
foreach ($curl_handles as $ch) {
$response = curl_multi_getcontent($ch);
$responses[] = $response;
curl_multi_remove_handle($mh, $ch);
curl_close($ch);
}
// 关闭curl多个句柄
curl_multi_close($mh);
// 处理响应结果
foreach ($responses as $response) {
// 处理每个请求的响应结果
echo $response . "\n";
}
?>
```
以上示例中,我们使用了curl_multi_init()函数创建了一个curl多个句柄的对象$mh,然后使用curl_multi_add_handle()函数将多个curl请求添加到句柄中。接着使用curl_multi_exec()函数执行并发请求,直到所有请求完成。最后使用curl_multi_getcontent()函数获取每个请求的响应结果,并进行处理。