PHP遞歸遍歷指定文件夾內(nèi)的文件實(shí)現(xiàn)方法
今天早上在地鐵上看了關(guān)于文件和文件夾的一章,正好最近剛搞懂linux的文件系統(tǒng),覺得對文件屬性的訪問跟Shell命令很像,所以想晚上來實(shí)踐一下。
發(fā)現(xiàn)php的文件夾函數(shù)好像沒有提供遍歷文件夾下的所有文件(包括子目錄中的文件),于是,就想自己實(shí)現(xiàn)一個。
在寫的時候發(fā)現(xiàn)一些操作文件夾的函數(shù)并不是自己想的那樣。比如,dirname()根據(jù)提供的完整文件路徑來取得文件所在的文件夾的路徑,但如果你傳入的是文件夾,它取的就是它的父文件夾。這點(diǎn)要明白。basename()也是同樣的道理,傳入文件夾路徑取得就是文件夾的名字。這兩個函數(shù)返回的結(jié)果結(jié)尾都不加'/'
<?php
$dirPath='/home/WWW/Test';//目錄,結(jié)尾不加'/‘
//執(zhí)行遍歷
recursion_readdir($dirPath);
/**
*@summary 重復(fù)times次字符char
*@param $char 需要重復(fù)的字符
*@param $times 重復(fù)次數(shù)
*@return 返回重復(fù)字符組成的字符串
*/
function forChar($char='-',$times=0){
$result='';
for($i=0;$i<$times;$i++){
$result.=$char;
}
return $result;
}
/**
*@summary 遞歸讀取目錄
*@param $dirPath 目錄
*@param $Deep=0 深度,用于縮進(jìn),無需手動設(shè)置
*@return 無
*/
function recursion_readdir($dirPath,$Deep=0){
$resDir=opendir($dirPath);
while($basename=readdir($resDir)){
//當(dāng)前文件路徑
$path=$dirPath.'/'.$basename;
if(is_dir($path) AND $basename!='.' AND $basename!='..'){
//是目錄,打印目錄名,繼續(xù)迭代
echo forChar('-',$Deep).$basename.'/<br/>';
$Deep++;//深度+1
recursion_readdir($path,$Deep);
}else if(basename($path)!='.' AND basename($path)!='..'){
//不是文件夾,打印文件名
echo forChar('-',$Deep).basename($path).'<br/>';
}
}
closedir($resDir);
}
以上這篇PHP遞歸遍歷指定文件夾內(nèi)的文件實(shí)現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- php遍歷目錄下文件并按修改時間排序操作示例
- PHP超低內(nèi)存遍歷目錄文件和讀取超大文件的方法
- php實(shí)現(xiàn)遍歷文件夾的方法匯總
- PHP遍歷目錄文件的常用方法小結(jié)
- php 遍歷目錄,生成目錄下每個文件的md5值并寫入到結(jié)果文件中
- 遍歷指定目錄,并存儲目錄內(nèi)所有文件屬性信息的php代碼
- PHP目錄與文件操作技巧總結(jié)(創(chuàng)建,刪除,遍歷,讀寫,修改等)
- PHP遞歸遍歷指定目錄的文件并統(tǒng)計(jì)文件數(shù)量的方法
- PHP動態(tài)地創(chuàng)建屬性和方法, 對象的復(fù)制, 對象的比較,加載指定的文件,自動加載類文件,命名空間
- PHP實(shí)現(xiàn)的文件瀏覽器功能簡單示例
相關(guān)文章
php+ajax實(shí)現(xiàn)異步上傳文件或圖片功能
這篇文章主要為大家詳細(xì)介紹了php+ajax實(shí)現(xiàn)異步上傳文件或圖片功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
php+mysql+ajax 局部刷新點(diǎn)贊/取消點(diǎn)贊功能(每個賬號只點(diǎn)贊一次)
這篇文章主要介紹了php+mysql+ajax 局部刷新點(diǎn)贊/取消點(diǎn)贊功能(每個賬號只點(diǎn)贊一次),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
php獲取qq用戶昵稱和在線狀態(tài)(實(shí)例分析)
獲取qq在線狀態(tài)官方已有API提供了,我們用另一種方法獲取qq用戶昵稱和在線狀態(tài),主要是為學(xué)習(xí)PHP。2013-10-10
分享一段php獲取linux服務(wù)器狀態(tài)的代碼
正在做的項(xiàng)目中,需要使用php獲取Linux服務(wù)器狀態(tài),度娘了一下,發(fā)現(xiàn)絕大部分都是基于WIN系統(tǒng)的,好吧,自力更生,分享給大家一段Linux的代碼2014-05-05
通過php快速統(tǒng)計(jì)某個數(shù)據(jù)庫中每張表的數(shù)據(jù)量
在優(yōu)化數(shù)據(jù)庫的,或者在導(dǎo)入數(shù)據(jù)的時候,知道某個數(shù)據(jù)庫中哪張數(shù)據(jù)表的數(shù)據(jù)量最多,有時候?qū)ξ覀冞€是有幫助的2012-09-09
給WordPress的編輯后臺添加提示框的代碼實(shí)例分享
這篇文章主要介紹了給WordPress的編輯后臺添加提示框的代碼實(shí)例分享,即制作一個鼠標(biāo)指向后顯示詳細(xì)信息的效果,需要的朋友可以參考下2015-12-12

