PHP中有許多與文件系統有關的函數,這些函數不僅可以打開文件,還可以顯示目錄中的內容、移動文件和其他一些功能,許多人甚至用PHP開發基於互聯網的文件資源管理器。
下面的腳本樣例可以顯示一個目錄清單,注釋已經包含在代碼中:
<? /把要讀取的目錄的全路徑名存入一個名字為$dir_name的變量中。/
$dir_name = "/home/me/";
/ 創建一個句柄,其值是打開一個給定目錄的結果/
$dir = opendir($dir_name);
/ 建立一個文字塊,用以放置列表元素(文件名字)/
$file_list = "<ul>";
/ 使用一個while語句,讀取已經打開的目錄中的所有元素,如果文件的名字不是“.”或“..”,則顯示列表中的名字/
while ($file_name = readdir($dir)) {
if (($file_name != ".") &&&& ($file_name != "..")) {
$file_list .= "<li>$file_name";
}
}
$file_list .= "</ul>";
/關閉打開的目錄,結束PHP模塊/
closedir($dir);
?>
<!-- Start your HTML -->
<HTML>
<HEAD>
<TITLE>Directory Listing</TITLE>
</HEAD>
<BODY>
<!-- Use PHP to print the name of the directory you read -->
<P>Files in: <? echo "$dir_name"; ?></p>
<!-- Use PHP to print the directory listing -->
<? echo "$file_list"; ?>
</BODY>
</HTML>
好了,我們已經得到了一個目錄清單。需要注意的是,要讀取一個文件(稍後我們將進行講解)或目錄的內容,PHP運行的系統上的用戶必須至少有讀取文件的權限。
下面是一個如何拷貝文件的例子:
<? /把你要拷貝的源文件的全路徑賦給一個名字為$original的變量中,把拷貝的文件的全路徑賦予一個名字為$copied的變量中/
$original = "/home/me/mydatabasedump";
$copied = "/archive/mydatabasedumo_1010";
/ 使用copy()函數拷貝源文件,如果拷貝沒有完成則會顯示一個錯誤信息/
@copy($original, $copied) or die("Couldn't copy file.");
?>
這個例子是一個文件備份系統的原型。在這段腳本運行時,它把文件拷貝到一個不同的位置進行保存。稍微修改一下守護程序,就可以在一天中你指定的時刻執行它,而無需用戶的干預。