最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP使用CURL_MULTI實現(xiàn)多線程采集的例子

 更新時間:2014年07月29日 10:37:02   投稿:junjie  
這篇文章主要介紹了PHP使用CURL_MULTI實現(xiàn)多線程采集的例子,CURL_MULTI可以對HTTP進行并發(fā)訪問,需要的朋友可以參考下

這兩天有一客戶定制了一個免登錄發(fā)布模塊,因為在模塊中需要涉及到很多圖片下載的問題,考慮到性能問題,所以特別寫了一個CURL_MULTI遠程采集網(wǎng)頁的函數(shù),以方便以后使用,估計以后都不會使用原來的單線程curl函數(shù)去foreach了,其性能對比很明顯的。同樣獲取我的博客的十個不同網(wǎng)頁,curl_multi:4.5246081352234,file_get_contents:33.001797914505,將近8倍的效率,可想而知,如果在附件更多的情況下,性能差異就越明顯了,希望對您有所幫助!

復(fù)制代碼 代碼如下:

<?php
$text = remote(array('http://m.fzitv.net/','http://www.baidu.com/'));
print_r($text);

function remote($urls) {
    if (!is_array($urls) or count($urls) == 0) {
        return false;
    }

    $curl = $text = array();
    $handle = curl_multi_init();
    foreach($urls as $k => $v) {
        $nurl[$k]= preg_replace('~([^:\/\.]+)~ei', "rawurlencode('\\1')", $v);
        $curl[$k] = curl_init($nurl[$k]);
        curl_setopt($curl[$k], CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl[$k], CURLOPT_HEADER, 0);
        curl_multi_add_handle ($handle, $curl[$k]);
    }

    $active = null;
    do {
        $mrc = curl_multi_exec($handle, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);

    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($handle) != -1) {
            do {
                $mrc = curl_multi_exec($handle, $active);
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }

    foreach ($curl as $k => $v) {
        if (curl_error($curl[$k]) == "") {
        $text[$k] = (string) curl_multi_getcontent($curl[$k]);
        }
        curl_multi_remove_handle($handle, $curl[$k]);
        curl_close($curl[$k]);
    }
    curl_multi_close($handle);
    return $text;
}

相關(guān)文章

  • Discuz!插件:自動隱藏帖子

    Discuz!插件:自動隱藏帖子

    Discuz!插件:自動隱藏帖子...
    2007-03-03
  • php基礎(chǔ)教程

    php基礎(chǔ)教程

    PHP是全球范圍內(nèi)應(yīng)用廣泛的開發(fā)語言,Web開發(fā)的最佳語言; PHP和Linux,Apache,MySQL緊密結(jié)合,形成LAMP的開源黃金組合,本文給大家php基礎(chǔ)教程,php基礎(chǔ),需要的朋友可以參考下
    2015-08-08
  • 在云虛擬主機部署thinkphp5項目的步驟詳解

    在云虛擬主機部署thinkphp5項目的步驟詳解

    thinkphp官網(wǎng)在去年的時候發(fā)布了tp的顛覆版本thinkphp5,tp5確實比之前的版本好用了很多,那么下面這篇文章就來給大家介紹關(guān)于在云虛擬主機部署thinkphp5項目的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12
  • PHP添加圖片水印、壓縮、剪切的封裝類

    PHP添加圖片水印、壓縮、剪切的封裝類

    為了防止自己辛苦制作的作品被別人竊取,經(jīng)常給作品添加水印,以此保證作品的唯一性,那么該怎么給圖片添加水印呢,如果作品尺寸過大,該如何處理呢,下面小編給大家詳細(xì)介紹有關(guān)PHP給圖片添加水印 壓縮 剪切的封裝類,需要的朋友可以參考下
    2015-08-08
  • PHP生成自適應(yīng)大小的縮略圖類及使用方法分享

    PHP生成自適應(yīng)大小的縮略圖類及使用方法分享

    PHP生成縮略圖網(wǎng)上代碼很多,大部分感覺寫的太死,而且不能自適應(yīng)大小。下面放出一個老外的版本
    2014-05-05
  • thinkphp5.1框架模板賦值與變量輸出示例

    thinkphp5.1框架模板賦值與變量輸出示例

    這篇文章主要介紹了thinkphp5.1框架模板賦值與變量輸出,結(jié)合實例形式分析了thinkphp5.1框架模板賦值與變量輸出基本操作技巧及相關(guān)注意事項,需要的朋友可以參考下
    2020-05-05
  • php array_keys 返回數(shù)組的鍵名

    php array_keys 返回數(shù)組的鍵名

    php中array_keys函數(shù)用于返回包含數(shù)組中所有鍵名的一個新數(shù)組。本文章向大家詳細(xì)介紹PHP array_keys函數(shù)使用方法。需要的碼農(nóng)可以參考一下
    2016-10-10
  • php偽靜態(tài)之APACHE篇

    php偽靜態(tài)之APACHE篇

    mod_rewrite是Apache的一個非常強大的功能,它可以實現(xiàn)偽靜態(tài)頁面。下面我詳細(xì)說說它的使用方法!對初學(xué)者很有用的哦!
    2014-06-06
  • PHP大神的十大優(yōu)良習(xí)慣

    PHP大神的十大優(yōu)良習(xí)慣

    這篇文章主要告訴大家PHP大神是如何養(yǎng)成的,php程序員的十大優(yōu)良習(xí)慣,感興趣的小伙伴們可以參考一下
    2016-09-09
  • PHP正在進行時-變量詳解及字符串動態(tài)插入變量

    PHP正在進行時-變量詳解及字符串動態(tài)插入變量

    這篇文章主要介紹了PHP正在進行時-變量詳解及字符串動態(tài)插入變量的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-12-12

最新評論

利辛县| 浦城县| 文昌市| 阿拉善盟| 阿拉尔市| 临武县| 宁陕县| 黄大仙区| 霍城县| 广南县| 隆昌县| 沾化县| 大渡口区| 扬州市| 钟山县| 三亚市| 元氏县| 龙游县| 梅州市| 萝北县| 博野县| 泗水县| 南溪县| 盐亭县| 桂东县| 十堰市| 临邑县| 沂水县| 常州市| 安新县| 德阳市| 西乌| 呈贡县| 湘潭市| 凤庆县| 孝感市| 海阳市| 永寿县| 嘉兴市| 随州市| 寿宁县|