標準の cURL_multi_exec 関数 (以下の例) を実行すると、要求されたすべての cURL ハンドルが一度に取得されます。各リクエスト間に 100 ミリ秒の遅延を入れたいのですが、それを行う方法はありますか? (Google および StackOverflow 検索で何も見つかりませんでした)
curl_multi_exec() の前に usleep() を試しました。これにより、スクリプトの速度が低下しますが、各リクエストは延期されません。
// array of curl handles & results
$curlies = array();
$result = array();
$mh = curl_multi_init();
// setup curl requests
for ($id = 0; $id <= 10; $id += 1) {
$curlies[$id] = curl_init();
curl_setopt($curlies[$id], CURLOPT_URL, "http://google.com");
curl_setopt($curlies[$id], CURLOPT_HEADER, 0);
curl_setopt($curlies[$id], CURLOPT_RETURNTRANSFER, 1);
curl_multi_add_handle($mh, $curlies[$id]);
}
// execute the handles
$running = null;
do {
curl_multi_exec($mh, $running);
} while($running > 0);
// get content and remove handles
foreach($curlies as $id => $c) {
$result[$id] = curl_multi_getcontent($c);
curl_multi_remove_handle($mh, $c);
}
// all done
curl_multi_close($mh);
私はこれに一日中取り組んでいます。どんな助けでも大歓迎です! ありがとうございました。
編集: cUrl 以外の方法はありますか? それは私の質問にも答えます。