一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 使用PHP遍歷文件夾與子目錄的函數代碼

使用PHP遍歷文件夾與子目錄的函數代碼

2019-12-13 10:18php教程網 PHP教程

最近對操作文件比較感興趣的說,所以咱們來把文件夾給遍歷了,順便生成個樹。

我們要使用的函數有 Scandir,它的作用是列出指定路徑中的文件和目錄,就像 Dir 一樣。

使用PHP遍歷文件夾與子目錄的函數代碼
> 與更強力的 Glob() 函數,作用是以數組的形式返回與指定模式相匹配的文件名或目錄。 
> 友情提醒,千萬別像小邪那樣在電腦前面呆太長時間,否則就會像小邪一樣得見鬼的高血糖。 

一. 遍歷單層文件夾: 

> 在掃描單層文件夾的問題是,兩個函數的結果雖有不同,不過表現是相差不大的。 
> Scandir 函數會提供額外兩行,分別是 “.” 和 “..” ,而 Glob 則是沒有的。 

復制代碼代碼如下:


function get_dir_scandir(){ 
$tree = array(); 
foreach(scandir('./') as $single){ 
echo $single."<br/>\r\n"; 


get_dir_scandir(); 

function get_dir_glob(){ 
$tree = array(); 
foreach(glob('./*') as $single){ 
echo $single."<br/>\r\n"; 


get_dir_glob(); 


二. 遞歸遍歷文件樹: 

> 在遞歸掃描文件夾樹的問題上,還是 Glob 函數的表現好一點,很準確的說。 
> Scandir 函數會莫名其妙掃描兩次 ../ 處的文件,也就是說如果小邪有倆文件。 
> ../b.php 和 ../a.php,結果就會在掃描報告上面出現兩次,很是奇怪。 

復制代碼代碼如下:


//Update at 2010.07.25 - 以下代碼作廢 
$path = '..'; 
function get_filetree_scandir($path){ 
$tree = array(); 
foreach(scandir($path) as $single){ 
if(is_dir('../'.$single)){ 
$tree = array_merge($tree,get_filetree($single)); 

else{ 
$tree[] = '../'.$single; 


return $tree; 

print_r(get_filetree_scandir($path)); 

//Update at 2010.07.25 - 以下為新代碼 
$path = './'; 
function get_filetree_scandir($path){ 
$result = array(); 
$temp = array(); 
if (!is_dir($path)||!is_readable($path)) return null; //檢測目錄有效性 
$allfiles = scandir($path); //獲取目錄下所有文件與文件夾 
foreach ($allfiles as $filename) { //遍歷一遍目錄下的文件與文件夾 
if (in_array($filename,array('.','..'))) continue; //無視 . 與 .. 
$fullname = $path.'/'.$filename; //得到完整文件路徑 
if (is_dir($fullname)) { //是目錄的話繼續(xù)遞歸 
$result[$filename] = get_filetree_scandir($fullname); //遞歸開始 

else { 
$temp[] = $filename; //如果是文件,就存入數組 


foreach ($temp as $tmp) { //把臨時數組的內容存入保存結果的數組 
$result[] = $tmp; //這樣可以讓文件夾排前面,文件在后面 

return $result; 

print_r(get_filetree_scandir($path)); 


> Glob 函數掃描灰常準確,并且會自動按照字母排好順序,貌似是最佳方案。 

復制代碼代碼如下:


$path = '..'; 
function get_filetree($path){ 
$tree = array(); 
foreach(glob($path.'/*') as $single){ 
if(is_dir($single)){ 
$tree = array_merge($tree,get_filetree($single)); 

else{ 
$tree[] = $single; 


return $tree; 

print_r(get_filetree($path)); 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人日女人的b | 天天色天天综合 | 亚洲国产日韩欧美在线vip1区 | 亚洲精品国产精品国自产观看 | 日韩欧美一区二区三区免费看 | 亚洲乱亚洲乱妇41p国产成人 | freexxxxxhd张柏芝 | 7777色鬼xxxx欧美色夫 | 欧美同性videos | juliaann主妇疯狂 | 日本视频在线观看播放 | 国产永久在线观看 | 2021国产麻豆剧传媒剧情最新 | 精品播放 | 黄德维| videos欧美肥婆| 日韩精品高清自在线 | 国产老村长足疗店对白 | 免费观看视频高清在线 | 青青青草国产线观 | 国产99视频精品免费视频7 | 亚洲区在线播放 | 亚洲一区二区三区久久精品 | yellow在线| 欧美a一片xxxx片与善交 | 俄罗斯妈妈k8影院在线观看 | 欧美精品v欧洲高清 | 日韩毛片在线视频 | 亚洲福利电影一区二区? | 亚洲va久久久噜噜噜久久狠狠 | 色噜噜视频影院 | 国产麻豆91网在线看 | 91调教 | 国产一区二区三区毛片 | 国内自拍2020 | 男人香蕉好大好爽视频 | 波多野结衣亚洲一区 | 99在线免费视频 | 天美影视传媒mv直接看 | 亚洲欧美综合区自拍另类 | 国内视频一区二区三区 |