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) に、角かっこ '[]' を使用して複数の URL を指定できると記載されています。上記の例で使用すると、これは次のようになります。

'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 に答える