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

解析php多線程下載遠程多個文件

 更新時間:2013年06月25日 17:07:53   作者:  
本篇文章是對php多線程下載遠程多個文件的方法進行了詳細的分析介紹,需要的朋友參考下
復(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 格式的字段,然后返回一個包含這些字段的數(shù)組
    2012-05-05
  • 淺析PHP程序設(shè)計中的MVC編程思想

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

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

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

    這篇文章主要介紹了PHP實現(xiàn)Unicode編碼相互轉(zhuǎn)換的方法,結(jié)合實例形式分析了Unicode編碼與解碼的相關(guān)實現(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é)合實例形式詳細講述了redis的安裝、配置、以及thinkphp6操作redis的基本實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下
    2023-06-06
  • PHP實現(xiàn)抽獎系統(tǒng)的示例代碼

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

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

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

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

    phpstorm編輯器亂碼問題解決

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

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

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

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

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

最新評論

宜宾市| 鸡泽县| 株洲县| 蓬安县| 茂名市| 阳朔县| 水富县| 和硕县| 正定县| 台州市| 弋阳县| 社旗县| 四会市| 拜泉县| 蓬安县| 崇仁县| 益阳市| 建水县| 崇左市| 华阴市| 文成县| 历史| 榆林市| 团风县| 保德县| 武鸣县| 阜康市| 土默特右旗| 宾川县| 毕节市| 商水县| 甘孜县| 滕州市| 澜沧| 旺苍县| 江西省| 烟台市| 南宁市| 峨眉山市| 临朐县| 福建省|