PHP遍歷指定目錄,並儲存目錄內所有檔案屬性資訊

2021-09-06 12:58:55 字數 2307 閱讀 1110

專案需要,需要寫乙個函式,能夠遍歷指定目錄中的所有檔案,而且這個目錄中的子目錄也要遍歷。輸出檔案的屬性資訊,並儲存。

專案過程中,便於操作,使用了json格式儲存,但是也發現了一些問題。謹此記錄問題及**,便於參考。

<?php 

define('indexformat',"dir,name,size,perms,ower,group,ctime,mtime,atime,suffix") ;

define('indextxt', 'data/index.txt');

define('indexjson', 'data/index.json');

date_default_timezone_set('asia/hong_kong');

if (file_exists

(indextxt))

$dir = './';

getindexfile(

$dir

);

/** get index file

* @filename indextxt

* @dir string

**/function getindexfile($dir,$whitelist='')

else

elseif(is_dir($dir.$filename

)) }}}

if (!file_exists

(indextxt))

//$data =json_encode(getindexfromfile());

//file_put_contents(indexjson,$data);

return

true

; }

/** get index file

* @filename file.index

**/function putindexfile($file

)

$format = explode(',',indexformat);

$string = "";

foreach ($format

as$key => $value

)

$string .= getfileattr($file,$value

); }

$string .= "\n";

}/**

* get index string from index file

* @return array()

*

*/function getindexfromfile($flag='')

$arr = file

(indextxt);

$format = explode(',',indexformat);

$result = array

();

if(!empty($flag

))

foreach ($arr

as$str

) }

else}}

return

$result

; }

/** get file attributes

* @var $file

* @var $flag

* @return string

*/function getfileattr($file,$flag

)

switch ($flag

) }

/** get file size human readable

*/function getfilesizeformat($file

)

$flags = array('', 'k', 'm', 'g', 't');

for ($i = 0; $size >= 1024 && $i

< 4; $i++) $size /= 1024;

return

round($size, 2).$flags[$i

]; }

php 禁止遍歷目錄,php無限遍歷目錄

以上就介紹了php無限遍歷目錄,包括了方面的內容,希望對php教程有興趣的朋友有所幫助。用的函式有 isset 判斷某個變數是否定義chdir 將當前目錄改變為指定的目錄。opendir 開啟目錄。readdir 讀取目錄。getcwd 獲取當前目錄。還用到了for if get傳值 大概就這些東東...

php遍歷指定目錄中的內容2

輸出檔案是否可讀寫,可執行,並同時輸出建立時間,修改時間,訪問時間 2.遍歷指定目錄中的內容 if arr file round函式對浮點數進行四捨五入 size round size,2 arrbyte i readresult is readable path.val 可讀 不可讀 writer...

VC C 遍歷指定目錄 Windows API

handle findfirstfile lpctstr lpfilename,lpwin32 find data lpfindfiledata bool findnextfile handle hfindfile,lpwin32 find data lpfindfiledata include i...