DrTebi at yahoo dot com 錯了。is_readable() 檢查您是否可以執行 file_get_contents() 或類似的呼叫,不多也不少。如果指定的位置返回 500 或 403 錯誤,您仍然可以 read() 該位置(您只會收到錯誤頁面),但它仍然是可讀取的。使用 is_readable 來檢查 URL 的有效性根本就是用錯函式。
(PHP 4, PHP 5, PHP 7, PHP 8)
is_readable — 判斷檔案是否存在且可讀取
filename
檔案路徑。
失敗時,會發出 E_WARNING
。
範例 #1 is_readable() 範例
<?php
$filename = 'test.txt';
if (is_readable($filename)) {
echo '檔案可讀取';
} else {
echo '檔案不可讀取';
}
?>
請記住,PHP 可能會以網頁伺服器執行的身分使用者 ID(通常為 'nobody')來存取檔案。
注意:此函式的結果會被快取。詳情請參閱 clearstatcache()。
注意事項:
檢查是使用真實的 UID/GID 而不是有效的 UID/GID 進行的。
DrTebi at yahoo dot com 錯了。is_readable() 檢查您是否可以執行 file_get_contents() 或類似的呼叫,不多也不少。如果指定的位置返回 500 或 403 錯誤,您仍然可以 read() 該位置(您只會收到錯誤頁面),但它仍然是可讀取的。使用 is_readable 來檢查 URL 的有效性根本就是用錯函式。
is_readable 會遞迴檢查。檢查所有子目錄和檔案是否可讀取
<?php
函式 is_readable_r($dir) {
if (is_dir($dir)) {
if(is_readable($dir)){
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (!is_readable_r($dir."/".$object)) return false;
else continue;
}
}
return true;
}else{
return false;
}
}else if(file_exists($dir)){
return (is_readable($dir));
}
}
?>