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

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

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

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

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

<?php
$text = remote(array('http://www.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!插件:自動(dòng)隱藏帖子

    Discuz!插件:自動(dòng)隱藏帖子

    Discuz!插件:自動(dòng)隱藏帖子...
    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
  • 在云虛擬主機(jī)部署thinkphp5項(xiàng)目的步驟詳解

    在云虛擬主機(jī)部署thinkphp5項(xiàng)目的步驟詳解

    thinkphp官網(wǎng)在去年的時(shí)候發(fā)布了tp的顛覆版本thinkphp5,tp5確實(shí)比之前的版本好用了很多,那么下面這篇文章就來給大家介紹關(guān)于在云虛擬主機(jī)部署thinkphp5項(xiàng)目的相關(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)大小。下面放出一個(gè)老外的版本
    2014-05-05
  • thinkphp5.1框架模板賦值與變量輸出示例

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

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

    php array_keys 返回?cái)?shù)組的鍵名

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

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

    mod_rewrite是Apache的一個(gè)非常強(qiáng)大的功能,它可以實(shí)現(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正在進(jìn)行時(shí)-變量詳解及字符串動(dòng)態(tài)插入變量

    PHP正在進(jìn)行時(shí)-變量詳解及字符串動(dòng)態(tài)插入變量

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

最新評論

济源市| 隆回县| 苏尼特右旗| 白银市| 西乡县| 博客| 连南| 安庆市| 扶余县| 绥芬河市| 毕节市| 丹阳市| 修武县| 平南县| 肥东县| 景德镇市| 楚雄市| 蛟河市| 普兰店市| 恩施市| 绩溪县| 六枝特区| 高雄县| 卢龙县| 安乡县| 保定市| 罗田县| 巴彦县| 安平县| 惠来县| 新和县| 江阴市| 桓仁| 沛县| 泉州市| 普安县| 天镇县| 屯昌县| 霍州市| 皋兰县| 天门市|