bool is_file ( string $filename )
若 $filename 存在且為普通文件(非目錄、非設備文件、非管道等),返回 true。
<?php
var_dump(is_file('a_file.txt')); // bool(true) - 普通文件
var_dump(is_file('/usr/bin/')); // bool(false) - 是目錄
?>
<?php
function deleteFolder($path) {
if (!is_dir($path)) return false;
$handle = opendir($path);
while (($file = readdir($handle)) !== false) {
if ($file === '.' || $file === '..') continue;
$full = $path . '/' . $file;
if (is_file($full)) {
@unlink($full); // 刪除文件
} elseif (is_dir($full)) {
deleteFolder($full); // 遞歸刪除子目錄
@rmdir($full); // 刪除空目錄
}
}
closedir($handle);
return @rmdir($path); // 刪除當前目錄
}
?>
<?php
function isAllowedFile($file) {
$allowedExts = '(jpg|jpeg|png|gif|pdf|doc|docx|xls|xlsx|txt)';
// 首字符不能為 . : ? - ,中間不含 : ? ,以允許副檔名結尾
return preg_match('/^[^.:?\\-][^:?]*\\.(?i)' . $allowedExts . '$/', $file);
}
var_dump(isAllowedFile('image.jpg')); // true
var_dump(isAllowedFile('.hidden.php')); // false
var_dump(isAllowedFile('script.php.jpg')); // true(繞過風險,實際應用需結合 MIME 檢查)
?>
is_dir(),受 clearstatcache() 影響。true。finfo_file)驗證,不可僅信任副檔名。clearstatcache(true, $path)(PHP 5.3+)針對性清除緩存。