0

我有大量类似于此的 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';

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

4

1 回答 1

0

您链接的文档是 cURL 命令行二进制文件的手册页,不适用于PHP 使用的libcurl 。如果您想在 PHP 中同时检索多个 URL,正确的方法是使用curl_multi_*函数,根据您显示的代码示例,您似乎已经意识到了这一点。

于 2012-10-08T21:34:55.920 回答