首頁 >後端開發 >php教程 >lost.dir是什麼資料夾 使用PHP遍歷資料夾與子目錄的函數程式碼

lost.dir是什麼資料夾 使用PHP遍歷資料夾與子目錄的函數程式碼

WBOY
WBOY原創
2016-07-29 08:46:481424瀏覽

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

 使用PHP遍历文件夹与子目录的函数代码
> 與更強的 Glob() 函數,作用是以數組的形式傳回與指定模式相符的檔案名稱或目錄。
> 友情提醒,千萬別像小邪一樣在電腦前面待太長時間,否則就會像小邪一樣得見鬼的高血糖。
一. 遍歷單層資料夾:
> 在掃描單層資料夾的問題是,兩個函數的結果雖有不同,不過表現是相差不大的。
> Scandir 函數會提供額外兩行,分別是 “.” 和 “..” ,而 Glob 則是沒有的。

複製程式碼 程式碼如下:


function get_dir_scandir(){
$tree = array();
foreach(scandir('.ingle') $. />rn";
}
}
get_dir_scandir();
function get_dir_glob(){
$tree = array();
foreach(glob('./*') as $ingle){choo;
rn";
}
}
get_dir_glob();


二. 遞歸遍歷檔案樹:

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


複製程式碼 程式碼如下:

//Update at 2010.07.25 - 以下程式碼作廢

$path = '..';
function get_arra_scand);
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.255 -% $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)) { //是目錄的話繼續遞歸
$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($path){

$tree = array(); foreach($path)* ) as $single){
if(is_dir($single)){
$tree = array_merge($tree,get_filetree($single));
}
else{
$tree[] = $single;
}
else{
$tree[] = $single;
}
$tree
return $tree;
}
print_r(get_filetree($path));

以上就介紹了lost.dir是什麼資料夾 使用PHP遍歷資料夾與子目錄的函數程式碼,包括了lost.dir是什麼資料夾方面的內容,希望對PHP教學有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn