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.");
?>
這個例子是一個檔案備份系統的原型。在這段指令碼運行時,它把檔案拷貝到一個不同的位置進行儲存。稍微修改一下精靈,就可以在一天中你指定的時刻執行它,而無需使用者的幹預。