PHP get请求多个url取返回内容自动排列
以下是一个简单的PHP脚本,可以使用CURL来获取多个URL的响应内容,并将它们按照请求的顺序排列:
<?php
$urls = array(
"https://www.example.com",
"https://www.google.com",
"https://www.github.com"
);
$curl_handlers = array();
$responses = array();
// 初始化CURL句柄
foreach ($urls as $url) {
$curl_handlers[] = curl_init($url);
}
// 执行所有请求
$multi_handler = curl_multi_init();
foreach ($curl_handlers as $handler) {
curl_multi_add_handle($multi_handler, $handler);
}
do {
curl_multi_exec($multi_handler, $running);
} while ($running > 0);
// 获取所有响应内容
foreach ($curl_handlers as $handler) {
$responses[] = curl_multi_getcontent($handler);
}
// 关闭所有句柄
foreach ($curl_handlers as $handler) {
curl_multi_remove_handle($multi_handler, $handler);
curl_close($handler);
}
curl_multi_close($multi_handler);
// 输出所有响应内容
foreach ($responses as $response) {
echo $response;
}
?>
这个脚本首先定义了一个URL列表,然后使用CURL初始化了一个句柄数组。接着,它使用curl_multi_init函数创建了一个多CURL句柄,并使用curl_multi_add_handle函数将所有单个句柄添加到多CURL句柄中。
接下来,使用curl_multi_exec函数执行所有请求,直到所有请求都完成。然后使用curl_multi_getcontent函数获取每个单个句柄的响应内容,并将其存储在一个响应数组中。
最后,关闭所有单个句柄和多CURL句柄,并输出所有响应内容。
请注意,这个脚本并没有对响应内容进行任何排序,只是按照请求的顺序将它们存储在响应数组中。如果您需要对响应内容进行排序,请根据您的需求修改脚本。
原文地址: http://www.cveoy.top/t/topic/6fs 著作权归作者所有。请勿转载和采集!