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

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

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

瀏覽:345日期: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久久,三上悠亚国产精品一区二区三区
亚洲精一区二区三区| 国产精品美女| 国产精品宾馆| 精品国产黄a∨片高清在线| 精品资源在线| 中文字幕高清在线播放| 欧美sss在线视频| 国产亚洲综合精品| 日本国产亚洲| 日本免费一区二区视频| 国产精品最新自拍| 日本久久黄色| 尹人成人综合网| 日韩欧美在线精品| 精品日韩在线| 激情婷婷亚洲| 亚洲精品影院在线观看| 国产精品亚洲产品| 日韩在线免费| 日韩在线卡一卡二| 国产精品视频3p| 日韩视频网站在线观看| 丝瓜av网站精品一区二区| 欧美亚洲一级| 97精品国产| 亚洲精品**中文毛片| 亚洲激情婷婷| 国产精品久久久久久模特 | 国产精品一站二站| 四虎4545www国产精品| 久久亚洲风情| 国产一区二区三区不卡视频网站 | 欧美日韩国产高清| 日韩国产一二三区| 日韩精品91| 亚洲精品系列| 欧美香蕉视频| 日本午夜精品视频在线观看| 中文字幕系列一区| 欧美日韩精品一区二区三区视频| 99久精品视频在线观看视频| 日韩高清欧美激情| 国产99精品| 麻豆精品久久久| 爽爽淫人综合网网站| 国产精选在线| 国产欧美一区二区色老头| 欧美日韩精品一本二本三本 | 久久成人亚洲| 在线手机中文字幕| 欧美精品国产一区| 在线亚洲国产精品网站| 国产在线观看www| 亚洲免费毛片| 国产尤物精品| 国产91在线精品| 日韩av成人高清| 99亚洲视频| 99久久99久久精品国产片果冰| 国产日韩视频在线| 首页欧美精品中文字幕| 99久久婷婷| 中文在线中文资源| 欧美激情日韩| 久久国内精品自在自线400部| 性欧美精品高清| 欧美特黄一区| 欧美a级片一区| 福利视频一区| 久久一区国产| 国产免费久久| 视频一区中文字幕精品 | 精品捆绑调教一区二区三区| 久久丁香四色| 欧美视频一区| 日韩精品a在线观看91| 一区二区国产在线观看| 亚洲一区二区网站| 不卡av一区二区| 久久国产亚洲| 欧美不卡高清一区二区三区| 精品亚洲二区| 久久精品国产福利| 国产精品免费精品自在线观看| 中文字幕中文字幕精品| 99热精品在线观看| 9国产精品视频| 国产日韩专区| 亚洲性视频在线| 中文字幕一区二区三区四区久久| aⅴ色国产欧美| 久久99伊人| 综合激情五月婷婷| 日日摸夜夜添夜夜添国产精品| 亚洲无线观看| 欧美一区精品| 国产亚洲高清一区| 国产精品资源| 久久精品资源| yellow在线观看网址| 丁香六月综合| 99精品视频精品精品视频| 精品在线91| 六月丁香综合| 日韩二区三区四区| 久久不见久久见国语| 日本一二区不卡| 电影亚洲精品噜噜在线观看| 久久精品国产68国产精品亚洲| 亚洲特级毛片| 亚洲一区国产一区| 免费在线欧美视频| 日韩精品欧美精品| 欧美国产不卡| 韩国三级一区| 天堂成人免费av电影一区| 婷婷精品在线| 久久一区精品| 欧美成人亚洲| 亚洲精品一级二级三级| 国产精品一国产精品k频道56| 久久精品国产在热久久| 91欧美在线| 最新日韩欧美| 久久国产人妖系列| 国产拍在线视频| 欧美日韩一二三四| 亚洲免费毛片| 国产精品99一区二区三| 日韩视频在线一区二区三区 | 亚洲国产成人精品女人| 亚洲精品字幕| 成人一区而且| 国产一区导航| 免费在线亚洲欧美| 免费观看不卡av| 国产精品亚洲欧美| 亚洲电影在线一区二区三区| 欧美视频精品全部免费观看| 免费亚洲一区| 国产精品免费看| 国产极品模特精品一二| 一本一道久久a久久精品蜜桃| 国产欧美日韩在线观看视频 | 国产v日韩v欧美v| 国产精品色网| 久久精品国产久精国产爱| 国产韩日影视精品| 911亚洲精品| 亚洲精品小说| 九九99久久精品在免费线bt| 国产精品日本欧美一区二区三区| 国产精品久久久久9999高清| 午夜欧美视频| 色综合狠狠操| 日韩国产成人精品| 欧美一区三区| 精品一区二区三区免费看| 亚洲三级观看| 视频一区中文| 人人草在线视频| 国产视频一区二区在线播放| 一区二区视频欧美| 亚洲永久av| 国产极品一区| 亚洲三级视频| 亚洲精品91| 国产精品久久久久久久久妇女| 日韩一二三区在线观看| 欧美另类专区| 蜜臀久久精品| 久久免费福利| 国产视频一区二区在线播放| 国产精品老牛| 欧美亚洲激情| 欧洲一区二区三区精品| 久久99青青| 国产亚洲精品美女久久久久久久久久| 免费日韩精品中文字幕视频在线| 亚洲天堂1区| 激情国产在线| 欧美国产日韩电影| 日韩高清不卡一区二区| 美女尤物久久精品| 国产一区亚洲| 欧美精选视频一区二区| 97精品国产| 久久91视频| 美女久久久久久| 久久99免费视频| 国产精品久久久久毛片大屁完整版| 亚洲精品大片| 亚洲理论在线| 少妇高潮一区二区三区99| 最近国产精品视频| 深夜日韩欧美| 中文字幕一区二区三区日韩精品 | 久久影院一区二区三区| 国产精品久久久一区二区| 国产日产精品_国产精品毛片|