PHP 提供豐富的檔案系統函式,不僅能開啟、讀寫檔案,還能列出目錄內容、移動、複製檔案等。許多開發者甚至以此打造出功能完整的 Web 檔案管理器。本文將系統整理常用操作並提供實用範例。
Windows 同時支援正斜線 / 與反斜線 \,但 Linux/Unix 僅支援 /。為確保跨平台相容,建議統一使用正斜線 / 作為路徑分隔符。
$dir_name = "/home/me/";
$dir = opendir($dir_name);
$file_list = "<ul>";
while ($file_name = readdir($dir)) {
if ($file_name != "." && $file_name != "..") {
$file_list .= "<li>$file_name</li>";
}
}
$file_list .= "</ul>";
closedir($dir);
echo "Files in: $dir_name";
echo $file_list;
注意:執行 PHP 的使用者必須對目標目錄擁有讀取權限,否則 opendir() 會失敗。
$original = "/home/me/mydatabasedump";
$copied = "/archive/mydatabasedump_1010";
@copy($original, $copied) or die("Couldn't copy file.");
結合 crontab 可實現定時自動備份:
# 每天凌晨 5 點執行(需安裝 Lynx 文字瀏覽器)
0 5 * * * [username] lynx -dump https://localhost/copyfile.php 1>/dev/null 2>&1
# 若使用 PHP CGI 版本,可直接呼叫執行檔
0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1
| 函式 | 用途 |
|---|---|
| opendir / readdir / closedir | 開啟、讀取、關閉目錄 |
| copy | 複製檔案 |
| move_uploaded_file | 移動上傳檔案 |
| unlink | 刪除檔案 |
| mkdir / rmdir | 建立/刪除目錄 |
| file_exists / is_dir / is_file | 檢查路徑屬性 |
| filesize / filemtime | 取得檔案大小/修改時間 |
../)