PHP之目錄函數小結

最近在做項目時遇到了目錄操作有關的函數,抓狂在這裏將其總結出來,與大家進行分享.


在進行PHP編程時,需要對服務器某個目錄下面的文件進行瀏覽,通常成爲遍歷目錄。
取得一個目錄下的文件和子目錄,就需要用到opendir()函數、readdir()函數、closedir()函數和rewinddir()函數。

opendir()
函數opendir()用於打開指定目錄,接受一個目錄的路徑及目錄名作爲參數,
函數返回值爲可供其他目錄函數使用的目錄句柄(資源類型)。如果該目錄不存在或者沒有訪問權限,則返回FALSE。

readdir()
函數readdir()用於讀取指定目錄,接受已經用opendir()函數打開的可操作目錄句柄作爲參數,
函數返回當前目錄指針位置的一個文件名,並將目錄指針向後移動一位。當指針位於目錄的結尾時,因爲沒有文件存在則返回FALSE。

closedir()
函數closedir()關閉指定目錄,接受已經用opendir()函數打開的可操作目錄句柄作爲參數。
函數無返回值,運行後關閉打開的目錄。

rewinddir()
函數reweinddir()倒回目錄句柄,接受已經用opendir()函數打開的可操作目錄句柄作爲參數。
將目錄指針重置目錄到開始處,即倒回目錄的開頭。

PS:

1.string getcwd();//獲取當前的工作目錄

2.array scandir(string dir[,int stringorder]);//該函數返回一個數組

3.dir(string dir);//將指定的目錄名轉化爲一個對象放回

4.chdir(string dir);//改變php的當前目錄

 there is a demo:

<?php
$num = 0; //用來統計子目錄和文件的個數
$dirname = 'phpMyAdmin'; //保存當前目錄下用來便利的一個目錄名
$dir_handle = opendir($dirname); //用opendir打開目錄

//將遍歷的目錄和文件名使用表格格式輸出
echo '<table border="0" align="center" width="600" cellspacing="0" cellpadding="0">';
echo '<caption><h2>目錄'.$dirname.'下面的內容</h2></caption>';
echo '<tr align="left" bgcolor="#cccccc">';
echo '<th>文件名</th><th>文件大小</th><th>文件類型</th><th>修改時間</th>';

//使用readdir循環讀取目錄裏的內容
while($file = readdir($dir_handle)){
//將將目錄下的文件和當前目錄連接起來,才能在程序中使用
$dirFile = $dirname."/".$file;

$bgcolor = $num+%2==0 ? '#FFFFFF' : '#CCCCCC'; //各行一種顏色
echo '<tr bgcolor='.$bgcolor.'>';
echo '<td>'.filesize($dirFile).'</td>'; //顯示文件名
echo '<td>'.filetype($dirFile).'</td>'; //顯示文件大小
echo '<td>'.date("Y/n/t",filemtime($dirFile)).'</td>'; //格式化顯示文件修改時間
echo '</tr>';
}

echo '</table>';
closedir($dir_handle); //關閉文件操作句柄
echo '在<b>'.$dirname.'</b>目錄下的子目錄和文件共有<b>'.$num.'</b>個';
?>


在這裏要特別聲明:readir()函數會將"." and ".."讀取出來,如果不想像是可以這樣:

$file=readir($f);
if($file!="." and $file!=".."){
echo"xxxxxx";
}
動手寫一下吧.加油。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章