解讀PHP如何使用 CURL 同步抓取多個網(wǎng)頁_PHP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:淺談PHP 閉包特性在實際應用中的問題原文鏈接: http://justafewlines.com/2009/10/whats-wrong-with-php-closures/ PHP5.3 新版本跟隨了很多新特性, 其中比較惹眼的特性之一就是支持了閉包。那么以后,我們也可以和那幫寫 Ruby、Javascript 等等高科技語言的家伙們一樣,寫出非常酷的代碼嗎?
一般CURL 抓網(wǎng)頁的方法, 是一頁一頁抓, 假設要抓 4頁, 所費時間各別是 5,10,7,5 秒, 那全部總合所花的時間就是 5 + 10 + 7 + 5 = 27 秒。若能同時間去抓取多個網(wǎng)頁, 所花費的時間 5,10,7,5 秒, 全部總合所花的時間是 10 秒。(花費最多時間的秒數(shù))于JavaScript 可使用 AJAX 的 async(YAHOO.util.Connect.asyncRequest)來達成, 于 PHP 可以用 CURL 來達成此 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 # 看時間延長取得的效果
| 以下為引用的內(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)); // 總花費時間會是 10 秒, 并印出 [0] => 5, [1] => 10, [2] => 7, [3] => 5 ?> |
分享:解說PHP中插件機制的一種實現(xiàn)方案這篇文章的出發(fā)點是我對插件機制的理解,及其在PHP中的實現(xiàn)。此方案僅是插件機制在PHP中的實現(xiàn)方案之一,寫下來和大家分享,歡迎大家一起討論。 插件,亦即Plug-in,是指一類特定的功能模塊(通常由第三方開發(fā)者實現(xiàn)),它的特點是:當你需要它的時候激活它
相關(guān)PHP教程:
- 相關(guān)鏈接:
- 教程說明:
PHP教程-解讀PHP如何使用 CURL 同步抓取多個網(wǎng)頁
。