如果这是一个非常基本的问题,请道歉。我使用多卷曲来处理各种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);
我的想法是否正确,如果是,我如何分割结果?
感谢您的帮助
答案 0 :(得分:0)
您可以按$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
的末尾,您将所有值组合在一个覆盖维数组中。您可以对foreach
执行另一个$results
并以更加语义的方式重新格式化(,例如通过url )