string basename(string $path[, string $suffix])
從完整路徑回傳檔名,若指定 $suffix 則移除該副檔名。Windows 支援 / 和 \ 兩種分隔符。
string dirname(string $path)
回傳去除檔名後的目錄路徑。
array pathinfo(string $path[, int $options])
回傳關聯陣列包含 dirname、basename、extension。可用 PATHINFO_DIRNAME 等常數指定回傳項目。
string realpath(string $path)
解析符號連結、./、../ 等,回傳標準化絕對路徑。失敗回傳 FALSE。
bool is_dir(string $filename)
存在且為目錄回傳 TRUE。結果會被快取,請配合 clearstatcache()。
$handle = opendir($path); // 開啟目錄控制代碼
$filename = readdir($handle); // 讀取下一個檔名
rewinddir($handle); // 重置指標到目錄開頭
closedir($handle); // 關閉目錄流
array glob(string $pattern[, int $flags])
依 libc 規則尋找匹配路徑。常用旗標:
GLOB_MARK:目錄名加斜線GLOB_NOSORT:不排序GLOB_BRACE:擴展 {a,b,c}GLOB_ONLYDIR:僅回傳目錄GLOB_ERR:遇錯誤停止(PHP 5.1+)<?php
$content = '你好';
// 傳統寫法
$fp = fopen('../file.txt', 'w');
fwrite($fp, $content);
fclose($fp);
// PHP 5+ 簡潔寫法
file_put_contents('file.txt', $content);
?>
<?php
$deleteResult = unlink('arch/abc.txt'); // 成功回傳 TRUE
?>
<?php
$content = file_get_contents('../file.txt');
?>
<?php
rename('/a/1.gif', '/a/2.gif'); // 重新命名
rename('/a/1.gif', '/b/2.gif'); // 移動並重新命名(目標目錄必須存在)
$renameResult = rename('/a/1.gif', '/b/2.gif');
?>
<?php
copy('/a/1.gif', '/b/1.gif'); // 無法複製目錄,目標檔存在會覆蓋
$copyResult = copy('/a/1.gif', '/b/1.gif');
?>
<?php
$existResult = file_exists('../logo.jpg'); // 檔案或目錄皆適用
?>
<?php
$size = filesize('../logo.png'); // 回傳位元組數
?>
<?php
$mkResult = mkdir('/a/b'); // 建立目錄
$deleteResult = rmdir('/a/b'); // 刪除目錄(必須為空目錄)
?>
<?php
$handler = opendir('pic/common');
while (($filename = readdir($handler)) !== false) {
if ($filename != "." && $filename != "..") {
echo $filename; // 處理檔名
}
}
closedir($handler);
?>
注意:必須用 !== false 判斷,避免檔名為 '0' 時誤判。
<?php
$checkResult = is_dir('../logo.jpg'); // 是目錄回傳 true
$checkResult = is_file('../logo.jpg'); // 是檔案回傳 true
?>