PHP遞歸遍歷指定文件夾內(nèi)的文件實(shí)現(xiàn)方法
今天早上在地鐵上看了關(guān)于文件和文件夾的一章,正好最近剛搞懂linux的文件系統(tǒng),覺(jué)得對(duì)文件屬性的訪問(wèn)跟Shell命令很像,所以想晚上來(lái)實(shí)踐一下。
發(fā)現(xiàn)php的文件夾函數(shù)好像沒(méi)有提供遍歷文件夾下的所有文件(包括子目錄中的文件),于是,就想自己實(shí)現(xiàn)一個(gè)。
在寫(xiě)的時(shí)候發(fā)現(xiàn)一些操作文件夾的函數(shù)并不是自己想的那樣。比如,dirname()根據(jù)提供的完整文件路徑來(lái)取得文件所在的文件夾的路徑,但如果你傳入的是文件夾,它取的就是它的父文件夾。這點(diǎn)要明白。basename()也是同樣的道理,傳入文件夾路徑取得就是文件夾的名字。這兩個(gè)函數(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),無(wú)需手動(dòng)設(shè)置
*@return 無(wú)
*/
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)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- php遍歷目錄下文件并按修改時(shí)間排序操作示例
- PHP超低內(nèi)存遍歷目錄文件和讀取超大文件的方法
- php實(shí)現(xiàn)遍歷文件夾的方法匯總
- PHP遍歷目錄文件的常用方法小結(jié)
- php 遍歷目錄,生成目錄下每個(gè)文件的md5值并寫(xiě)入到結(jié)果文件中
- 遍歷指定目錄,并存儲(chǔ)目錄內(nèi)所有文件屬性信息的php代碼
- PHP目錄與文件操作技巧總結(jié)(創(chuàng)建,刪除,遍歷,讀寫(xiě),修改等)
- PHP遞歸遍歷指定目錄的文件并統(tǒng)計(jì)文件數(shù)量的方法
- PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對(duì)象的復(fù)制, 對(duì)象的比較,加載指定的文件,自動(dòng)加載類文件,命名空間
- PHP實(shí)現(xiàn)的文件瀏覽器功能簡(jiǎn)單示例
相關(guān)文章
php+ajax實(shí)現(xiàn)異步上傳文件或圖片功能
這篇文章主要為大家詳細(xì)介紹了php+ajax實(shí)現(xiàn)異步上傳文件或圖片功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
php+mysql+ajax 局部刷新點(diǎn)贊/取消點(diǎn)贊功能(每個(gè)賬號(hào)只點(diǎn)贊一次)
這篇文章主要介紹了php+mysql+ajax 局部刷新點(diǎn)贊/取消點(diǎn)贊功能(每個(gè)賬號(hào)只點(diǎn)贊一次),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下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
通過(guò)php快速統(tǒng)計(jì)某個(gè)數(shù)據(jù)庫(kù)中每張表的數(shù)據(jù)量
在優(yōu)化數(shù)據(jù)庫(kù)的,或者在導(dǎo)入數(shù)據(jù)的時(shí)候,知道某個(gè)數(shù)據(jù)庫(kù)中哪張數(shù)據(jù)表的數(shù)據(jù)量最多,有時(shí)候?qū)ξ覀冞€是有幫助的2012-09-09
給WordPress的編輯后臺(tái)添加提示框的代碼實(shí)例分享
這篇文章主要介紹了給WordPress的編輯后臺(tái)添加提示框的代碼實(shí)例分享,即制作一個(gè)鼠標(biāo)指向后顯示詳細(xì)信息的效果,需要的朋友可以參考下2015-12-12

