一般に、CURL が Web ページをクロールする方法では、4 ページをクロールすると、合計で 5、10、7、5 秒かかります。費やした時間 時間は 5 + 10 + 7 + 5 = 27 秒です。複数の Web ページを同時にクロールできる場合、所要時間は 5、10、7、5 秒となり、合計所要時間は 10 秒になります。 (最も時間がかかった秒数)
JavaScript の場合、AJAX の非同期 (YAHOO.util.Connect.asyncRequest) を使用してこれを実現でき、PHP の場合、CURL を使用してこのマルチスレッド効果を実現できます。
プログラム (async.php)
以下为引用的内容:
|
以下为引用的内容: $urls = array('http://example1.com', 'http://example2.com'); print_r(async_get_url($urls)); // [0] => example1, [1] => example2 ?> |
テスト
sleep.php # 時間延長の効果を確認する
以下为引用的内容: sleep(intval($_GET['time'])); echo intval($_GET['time']); ?> |
以下为引用的内容: $url_array = array( 'http://example.com/sleep.php?time=5', 'http://example.com/sleep.php?time=10', 'http://example.com/sleep.php?time=7', 'http://example.com/sleep.php?time=5', ); print_r(async_get_url($url_array)); // 总花费时间会是 10 秒, 并印出 [0] => 5, [1] => 10, [2] => 7, [3] => 5 ?> |