使用方括号指定带有cURL / PHP的多个URL

时间:2012-10-08 21:30:11

标签: php url curl

我有一大堆类似于此的URL:

 $nodes = array(
    'http://www.example.com/product.php?page=1&sortOn=sellprice',
    'http://www.example.com/product.php?page=2&sortOn=sellprice',
    'http://www.example.com/product.php?page=3&sortOn=sellprice'
);

这里的cURL手册(http://curl.haxx.se/docs/manpage.html)我可以使用方括号'[]'来指定多个网址。在上面的示例中使用,这将类似于:

'http://www.example.com/product.php?page=[1-3]&sortOn=sellprice'

到目前为止,我无法正确引用它。这是我目前正在尝试使用的完整代码段:

$nodes = array(
    'http://www.example.com/product.php?page=1&sortOn=sellprice',
    'http://www.example.com/product.php?page=2&sortOn=sellprice',
    'http://www.example.com/product.php?page=3&sortOn=sellprice' 
);

$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_multi_add_handle($master, $curl_arr[$i]);
}

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

echo "results: ";
for($i = 0; $i < $node_count; $i++)
{
    $results = curl_multi_getcontent  ( $curl_arr[$i]  );
    echo( $i . "\n" . $results . "\n");
echo 'done';

我似乎无法找到更多关于此的文档。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您链接的文档是cURL命令行二进制文件的联机帮助页,并且适用于libcurl,这是PHP使用的。如果您想在PHP中同时检索多个URL,正确的方法是使用curl_multi_*函数,因为您似乎根据您显示的代码示例了解。