一般CURL 抓網(wǎng)頁的方法, 是一頁一頁抓, 假設(shè)要抓 4頁, 所費(fèi)時(shí)間各別是 5,10,7,5 秒, 那全部總合所花的時(shí)間就是 5 + 10 + 7 + 5 = 27 秒。若能同時(shí)間去抓取多個(gè)網(wǎng)頁, 所花費(fèi)的時(shí)間 5,10,7,5 秒, 全部總合所花的時(shí)間是 10 秒。(花費(fèi)最多時(shí)間的秒數(shù))于JavaScript 可使用 AJAX 的 async(YAHOO.util.Connect.asyncRequest)來達(dá)成, 于 PHP 可以用 CURL 來達(dá)成此 Multi-Threading 的效果。程序(async.php)
以下為引用的內(nèi)容: |
使用
| 以下為引用的內(nèi)容: <?php $urls = array('http://example1.com', 'http://example2.com'); print_r(async_get_url($urls)); // [0] => example1, [1] => example2 ?> |
測試
sleep.php # 看時(shí)間延長取得的效果
| 以下為引用的內(nèi)容: <?php sleep(intval($_GET['time'])); echo intval($_GET['time']); ?> |
| 以下為引用的內(nèi)容: <?php $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)); // 總花費(fèi)時(shí)間會(huì)是 10 秒, 并印出 [0] => 5, [1] => 10, [2] => 7, [3] => 5 ?> |
新聞熱點(diǎn)
疑難解答