php - curl 多请求分割结果数组

标签 php mysql curl

如果这是一个非常基本的问题,我们深表歉意。我正在使用多 curl 来处理各种 URL 的数组。它似乎工作正常,但是结果被分组到一个数组中。我想将结果插入回我的数据库,因此我认为我需要单独处理每个 URL 的结果。我的代码如下所示:

$nodes = array($url1, $url2, $url3);
$node_count = count($nodes);

$curl_arr = array();
$master = curl_multi_init();

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_setopt($curl_arr[$i], CURLOPT_FOLLOWLOCATION, true);
    curl_multi_add_handle($master, $curl_arr[$i]);
}

do {
    curl_multi_exec($master,$running);
} while($running > 0);

for($i = 0; $i < $node_count; $i++)
{
$results[] = curl_getinfo($curl_arr[$i], CURLINFO_EFFECTIVE_URL);
$results[] = curl_getinfo($curl_arr[$i], CURLINFO_HTTP_CODE);
$results[] = curl_getinfo($curl_arr[$i], CURLINFO_CONTENT_TYPE);
}
print_r($results);

我的想法是否正确,如果正确,我该如何分割结果?

感谢您的帮助

最佳答案

您可以根据 $i 的值对结果进行分组,只需将最后一个 foreach 更改为:

for($i = 0; $i < $node_count; $i++)
{
  $results[$i][] = curl_getinfo($curl_arr[$i], CURLINFO_EFFECTIVE_URL);
  $results[$i][] = curl_getinfo($curl_arr[$i], CURLINFO_HTTP_CODE);
  $results[$i][] = curl_getinfo($curl_arr[$i], CURLINFO_CONTENT_TYPE);
}

$results 的末尾,您将把所有值分组到一个多维数组中。您可以对 $results 执行另一个 foreach 并以更语义化的方式重新格式化它(例如通过 url)

关于php - curl 多请求分割结果数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28155525/

相关文章:

php - 提交后如何停止重新加载页面?

php - 字符串替换不起作用

javascript - 根据所选的州显示 马来西亚 城市

php - 使用PHP解析大量IP地址

php - 更新 Mysql 数据库的最快方法

php - 有没有办法在 array_map 输出上有命名索引?

php - 3 Drop Downs 链使用 ajax mysql

mysql - 为什么 "drop procedure if exists konami"在 mysql 中不起作用?

java - 我想通过java从主机和jmx端口获取指标

curl - 如何查找网站是否使用 HSTS