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

解析php多線程下載遠(yuǎn)程多個(gè)文件

 更新時(shí)間:2013年06月25日 17:07:53   作者:  
本篇文章是對(duì)php多線程下載遠(yuǎn)程多個(gè)文件的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
復(fù)制代碼 代碼如下:

function remote($urls, $name = '', $path = '', $dir = './images/') {
 if (!is_array($urls) or count($urls) == 0) {
  return false;
 }
 dmkdir($dir);
 $curl = $text = array();
 foreach($urls as $k => $v) {
  if (!empty($v) && preg_match("~^http~i", $v)) {
   $nurl[$k] = trim(str_replace(' ', "%20", $v));
   $curl[$k] = curl_init($nurl[$k]);
   curl_setopt($curl[$k], CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
   curl_setopt($curl[$k], CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($curl[$k], CURLOPT_HEADER, 0);
   curl_setopt($curl[$k], CURLOPT_CONNECTTIMEOUT, 20);
   if(!isset($handle)){
    $handle = curl_multi_init();
   }
   curl_multi_add_handle($handle, $curl[$k]);
  }
  continue ;
 }
 $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]) == "") {
    if ($k == 0) {
     $fname[$k] = strtolower($name . '.' . pathinfo($urls[$k], PATHINFO_EXTENSION));
    } else {
     $fname[$k] = strtolower($name . '_' . $k . '.' . pathinfo($urls[$k], PATHINFO_EXTENSION));
    }
    $text[$k] = (string) curl_multi_getcontent($curl[$k]);
    $filedir[$k] = $dir.'/' . $fname[$k];
   if (file_put_contents($filedir[$k], $text[$k])) {
    $filepath[$k] = $path . $fname[$k];
   }
  }
  curl_multi_remove_handle($handle, $curl[$k]);
  curl_close($curl[$k]);
 }
 curl_multi_close($handle);
 return $filepath;
}

相關(guān)文章

  • PHP fgetcsv 定義和用法(附windows與linux下兼容問題)

    PHP fgetcsv 定義和用法(附windows與linux下兼容問題)

    PHP fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。與PHP fgets() 類似,不同的是 PHP fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個(gè)包含這些字段的數(shù)組
    2012-05-05
  • 淺析PHP程序設(shè)計(jì)中的MVC編程思想

    淺析PHP程序設(shè)計(jì)中的MVC編程思想

    這篇文章主要介紹了PHP程序設(shè)計(jì)中的MVC編程思想,對(duì)于深入理解MVC程序設(shè)計(jì)思想有一定的幫助,需要的朋友可以參考下
    2014-07-07
  • PHP實(shí)現(xiàn)Unicode編碼相互轉(zhuǎn)換的方法示例

    PHP實(shí)現(xiàn)Unicode編碼相互轉(zhuǎn)換的方法示例

    這篇文章主要介紹了PHP實(shí)現(xiàn)Unicode編碼相互轉(zhuǎn)換的方法,結(jié)合實(shí)例形式分析了Unicode編碼與解碼的相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2017-04-04
  • Laravel 5.3 學(xué)習(xí)筆記之 安裝

    Laravel 5.3 學(xué)習(xí)筆記之 安裝

    本文是Laravel 5.3 學(xué)習(xí)筆記系列文章的第一篇,我們來加單講解下Laravel 5.3 的安裝,有需要的小伙伴可以參考下
    2016-08-08
  • thinkphp6中Redis 的基本使用方法詳解

    thinkphp6中Redis 的基本使用方法詳解

    這篇文章主要介紹了thinkphp6中Redis 的基本使用方法,結(jié)合實(shí)例形式詳細(xì)講述了redis的安裝、配置、以及thinkphp6操作redis的基本實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2023-06-06
  • PHP實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)的示例代碼

    PHP實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)的示例代碼

    這篇文章主要為大家介紹了如何利用PHP實(shí)現(xiàn)三種不同的抽獎(jiǎng)算法:隨機(jī)抽獎(jiǎng)、概率抽獎(jiǎng)和內(nèi)定抽獎(jiǎng),文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-06-06
  • php設(shè)計(jì)模式 Template (模板模式)

    php設(shè)計(jì)模式 Template (模板模式)

    定義一個(gè)操作中的算法骨架,而將一些步驟延遲到子類中,使得子類可以不改變一個(gè)算法的結(jié)構(gòu)可以定義該算法的某些特定步驟
    2011-06-06
  • phpstorm編輯器亂碼問題解決

    phpstorm編輯器亂碼問題解決

    這篇文章主要介紹了phpstorm編輯器亂碼問題的解決方案,非常的實(shí)用,給需要的小伙伴們參考下。
    2014-12-12
  • php常用數(shù)學(xué)函數(shù)匯總

    php常用數(shù)學(xué)函數(shù)匯總

    這篇文章主要介紹了php常用數(shù)學(xué)函數(shù),以實(shí)例形式匯總了常用數(shù)學(xué)函數(shù)的定義及用法實(shí)例,具有不錯(cuò)的學(xué)習(xí)與借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • str_replace只替換一次字符串的方法

    str_replace只替換一次字符串的方法

    我們都知道,在PHP里Strtr,strreplace等函數(shù)都可以用來替換,不過他們每次替換的時(shí)候都是全部替換,但是如果你想只替換一個(gè)或兩個(gè)怎么辦呢?看下邊的解決方法
    2013-04-04

最新評(píng)論

竹山县| 山东省| 全椒县| 博白县| 佛山市| 宜黄县| 哈尔滨市| 崇礼县| 榆社县| 合作市| 隆德县| 徐水县| 疏勒县| 鄂州市| 乌审旗| 永宁县| 资兴市| 延寿县| 绥江县| 苍梧县| 海盐县| 桃园市| 施甸县| 伊金霍洛旗| 咸丰县| 磴口县| 玉林市| 嵩明县| 五常市| 济南市| 惠水县| 河曲县| 天长市| 泸州市| 体育| 丰顺县| 故城县| 聊城市| 西昌市| 宜兰县| 洮南市|