日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

dir()、readdir()、scandir()和glob()四種遍歷目錄方法及性能分析

瀏覽:349日期:2022-06-06 13:32:11
目錄
  • 一、使用dir()函數遍歷目錄
  • 二、使用opendir()、readdir()函數遍歷目錄
  • 三、使用glob()函數遍歷目錄
  • 四、使用php scandir函數遍歷目錄和所有文件
  • 五、測試以上四種方法的性能并分析結果

       php遍歷目錄和文件的場景在很多時候都能用到,遍歷目錄方法的方法有好幾種,那么應該使用哪種方法呢?一般情況下,遍歷目錄時只需遍歷出目錄和文件,如果要遍歷子目錄下目錄和文件,就需要用到is_dir()判斷是否問目錄,若是目錄則遞歸遍歷。php中遍歷目錄用到的函數有dir()、readdir()、scandir()和glob(),那么四個函數有什么區別呢?性能又如何呢?

一、使用dir()函數遍歷目錄

    dir()函數是以對象的方式訪問目錄,如果成功,返回一個 Directory 類實例,參數錯誤的情況下返回 NULL , 其它錯誤情況返回 false。
    代碼

function mydir($path){
    $dir = dir($path);
    while(false !== ($file = $dir -> read())){
if($file != "." && $file != ".."){
    if(is_dir($path . $file)){
echo "目錄:" . $path . $file . "<br/>"; 
mydir($path . $file . "/");
}else{
echo "文件:" . $path . $file . "<br/>";
}
    }
}
    $dir -> close();
    }

二、使用opendir()、readdir()函數遍歷目錄

    相關函數
        函數opendir()用于打開指定目錄,接受一個目錄的路徑及目錄名作為參數,函數返回值為可供其他目錄函數使用的目錄句柄(資源類型)。如果該目錄不存在或者沒有訪問權限,則返回FALSE。
        函數readdir()用于讀取指定目錄,接受已經用opendir()函數打開的可操作目錄句柄作為參數,函數返回當前目錄指針位置的一個文件名,并將目錄指針向后移動一位。當指針位于目錄的結尾時,因為沒有文件存在則返回FALSE。
        函數closedir()關閉指定目錄,接受已經用opendir()函數打開的可操作目錄句柄作為參數。函數無返回值,運行后關閉打開的目錄。
        函數rewinddir()倒回目錄句柄,接受已經用opendir()函數打開的可操作目錄句柄作為參數。將目錄指針重置目錄到開始處,即倒回目錄的開頭。

function myreaddir($path){
    $handle = opendir($path);
    if($handle){
while (false !== ($file = readdir($handle))) {
    if($file != "." && $file != ".."){
if(is_dir($path.$file)){
    echo "目錄:" . $path . $file . "<br/>"; 
    myreaddir($path . $file . "/");
}else{
    echo "文件:" . $path . $file . "<br/>";
}
    }
}
    closedir($handle);
    return false;
    }
}

三、使用glob()函數遍歷目錄

    glob() 函數返回匹配指定模式的文件名或目錄,該函數返回一個包含有匹配文件 / 目錄的數組,如果出錯返回 false。
    代碼

function myglob($path){
    foreach(glob($path) as $file){
if($file != "." && $file != ".."){
    if(is_dir($file)){
echo "目錄:" . $file . "/";
myglob($file . "/*");
    }else{
echo "文件:" . $file . "";
    }
}
    }
} 

其中參數$path 有三種情況:

    參數$path=’*.*’,表示掃描當前目錄下的文件,不包括文件夾,返回的是一個數組。
    參數$path=’images/*’,表示掃描指定目錄下所有的文件,包括文件夾,也可以掃描指定的文件類型,如:images/*.jpg;注意,如果只輸入:images只會返回該文件夾名稱,如果只輸入:images/ 則什么也不會返回。

    參數$path=’*’,表示掃描指定目錄下的所有文件、目錄及子目錄的文件。

四、使用php scandir函數遍歷目錄和所有文件

<?php
$dir = "."; //當前目錄
list_file($dir);
function list_file($dir){
    $list = scandir($dir); // 得到該文件下的所有文件和文件夾
    foreach($list as $file){//遍歷
$file_location=$dir."/".$file;//生成路徑
if(is_dir($file_location) && $file!="." &&$file!=".."){ //判斷是不是文件夾
    echo "------------------------sign in $file_location------------------";
    list_file($file_location); //繼續遍歷
}
echo "<br/>";
    }
}
?>

五、測試以上四種方法的性能并分析結果

<?php
set_time_limit(0);
for($i = 1; $i <= 5; $i++){
    $starttime = microtime(true);
    mydir("./");
    //scandir("./");
    //myreaddir("./");
    //myglob("*");
    $endtime = microtime(true);
    $total = ($endtime - $starttime) * 1000;
    echo "第 $i 次,用時 $total 毫秒;";
}
?>

       通過測試可以看出,在單一遍歷時dir()、readdir()函數效率完敗glob()函數;而遞歸遍歷時,glob()函數性能稍微好一點,但優勢不是很高。

       dir()函數 Directory 類的實例,而 Directory 類中封裝的read()方法與readdir()函數功能一樣,所以使用dir()和readdir函數遍歷目錄時,性能差別不大。

       到此這篇關于dir()、readdir()、scandir()和glob()四種遍歷目錄方法及性能分析的文章就介紹到這了,更多相關dir()、readdir()、scandir()和glob()區別內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩电影免费网站| 韩日一区二区三区| av资源中文在线天堂| 欧洲一级精品| 在线观看亚洲精品福利片| 欧美日韩精品一区二区三区在线观看| 老色鬼精品视频在线观看播放| 天堂网av成人| 韩日一区二区三区| 国产白浆在线免费观看| 深夜福利亚洲| 欧美日本久久| 加勒比视频一区| 91精品一区二区三区综合在线爱| 国产精品久久久久久久久久妞妞| 国产乱人伦丫前精品视频| 国产亚洲网站| 欧美理论视频| 爽好久久久欧美精品| 欧美激情三区| 久久xxxx| 成人亚洲一区二区| 中文字幕亚洲在线观看| 国产精品嫩草影院在线看| 伊人久久大香线蕉av不卡| 日本免费一区二区视频| 激情偷拍久久| 精品一区二区三区在线观看视频 | 在线观看一区| 国产91在线精品| 亚洲精品在线a| 色婷婷精品视频| 国产亚洲久久| 日韩不卡在线观看日韩不卡视频 | 国产精品丝袜xxxxxxx| 毛片不卡一区二区| 亚洲开心激情| 免费久久精品| 国产精品久久久久久久久妇女| 视频一区二区国产| 天堂中文av在线资源库| 91亚洲无吗| 国产农村妇女精品一二区| 高清精品久久| 欧美有码在线| 男女精品网站| 国产精品成人a在线观看| 亚洲a级精品| 香蕉精品视频在线观看| 欧美好骚综合网| 国产日韩一区二区三免费高清 | 精品国产乱码久久久久久樱花| 视频精品一区二区| 久久人人88| 91综合视频| 国产精品日本一区二区三区在线| 亚洲视频电影在线| 九九久久婷婷| 九九色在线视频| 国产精品成人**免费视频| 免费看日韩精品| 国内激情久久| 久久精品国产亚洲夜色av网站| 精品三级av| 国产日韩欧美一区| 亚洲久久视频| 久久国产88| 五月天综合网站| 亚洲无线一线二线三线区别av| 国产91在线精品| 久久99久久久精品欧美| 久久国产精品色av免费看| 亚洲三级国产| 免费观看在线综合| 国产精品av久久久久久麻豆网| 日本欧美不卡| 欧美天堂视频| 色黄视频在线观看| 日韩av有码| 成人午夜亚洲| av免费不卡国产观看| 国产在线日韩精品| 丰满少妇一区| 国产不卡人人| 九九色在线视频| 久久久久中文| 天堂资源在线亚洲| 婷婷精品视频| 蜜桃视频欧美| 欧美日韩国产高清| 亚洲欧美视频| 亚洲狼人精品一区二区三区| 一本一道久久a久久| 亚洲欧美网站在线观看| 水野朝阳av一区二区三区| 蜜桃视频在线观看一区二区| 影音先锋久久精品| 亚欧洲精品视频在线观看| 日韩高清一区| 亚洲一二三区视频| 久久精品日韩欧美| 国产精品99久久精品| 日韩毛片在线| 欧美日韩精品在线一区| 亚洲女同av| 久久九九精品| 性色一区二区| 亚洲精品高潮| 国产欧美大片| 久久精品国产网站| av日韩中文| 欧美午夜精品一区二区三区电影| 欧美性感美女一区二区| 另类亚洲自拍| 日韩精品乱码av一区二区| 国产欧美在线观看免费| 久久精品国产成人一区二区三区| 涩涩av在线| 日韩亚洲在线| 综合日韩av| 日韩欧美一区二区三区免费看| 伊人网在线播放| 欧美一区久久久| 999视频精品| 激情久久五月| 亚洲永久字幕| 蜜桃久久久久久久| 亚洲在线久久| 国产精品久久观看| 亚洲ww精品| 亚洲色图综合| 日韩午夜视频在线| 国产日产高清欧美一区二区三区| 日韩av一二三| 日韩精品视频在线看| 丝袜美腿诱惑一区二区三区 | 国产一区福利| 日本一二区不卡| 日韩精品免费一区二区在线观看 | 日韩高清中文字幕一区二区| 亚洲www啪成人一区二区| 日韩欧美一区二区三区在线观看| 99成人在线视频| 夜夜嗨一区二区| 亚洲免费观看高清完整版在线观| 亚洲精品中文字幕99999| 国产欧美成人| 亚洲精品88| 久久电影一区| 国产日韩1区| 精品香蕉视频| 神马日本精品| 亚洲一区二区三区中文字幕在线观看| 亚洲精品伊人| 精品视频在线观看网站| 日韩av一级| 日韩影院免费视频| 欧美偷窥清纯综合图区| 国产一区二区三区四区| 婷婷激情一区| 综合激情婷婷| 激情综合五月| 亚洲精品一区二区妖精| 日韩一区网站| 中文在线免费视频| 免费视频最近日韩| 精品一区二区三区中文字幕在线| 亚洲一级高清| 91成人在线| 日韩精品诱惑一区?区三区| 91精品成人| 欧美激情麻豆| 日韩午夜在线| 久久影院一区二区三区| 日韩理论片av| 综合一区二区三区| 国产精品99一区二区三区| 亚洲欧美日本视频在线观看| 国产精品xxx在线观看| 久久九九精品| 欧美日韩99| 午夜久久一区| 精品国产精品国产偷麻豆| 亚洲欧美日韩国产| 91亚洲成人| 日本91福利区| 亚洲国产不卡| 国产一区二区精品福利地址| 亚洲一区二区三区四区五区午夜 | 欧美日韩在线观看视频小说| 日韩国产欧美在线视频| 日本精品在线中文字幕| 欧美一级二区| 激情婷婷欧美| 久久香蕉精品香蕉| 麻豆精品91| 日韩欧美在线中字| 综合激情一区| av高清一区| 精品国产一区二|