獲取檔案資訊
檢查路徑是目錄還是檔案
該 is_dir
函式返回引數是否是一個目錄,而 is_file
是否返回的引數是一個檔案。使用 file_exists
檢查它是否是。
$dir = "/this/is/a/directory";
$file = "/this/is/a/file.txt";
echo is_dir($dir) ? "$dir is a directory" : "$dir is not a directory", PHP_EOL,
is_file($dir) ? "$dir is a file" : "$dir is not a file", PHP_EOL,
file_exists($dir) ? "$dir exists" : "$dir doesn't exist", PHP_EOL,
is_dir($file) ? "$file is a directory" : "$file is not a directory", PHP_EOL,
is_file($file) ? "$file is a file" : "$file is not a file", PHP_EOL,
file_exists($file) ? "$file exists" : "$file doesn't exist", PHP_EOL;
這給出了:
/this/is/a/directory is a directory
/this/is/a/directory is not a file
/this/is/a/directory exists
/this/is/a/file.txt is not a directory
/this/is/a/file.txt is a file
/this/is/a/file.txt exists
檢查檔案型別
使用 filetype
檢查檔案的型別,可能是:
fifo
char
dir
block
link
file
socket
unknown
直接將檔名傳遞給 filetype
:
echo filetype("~"); // dir
請注意,如果檔案不存在,filetype
將返回 false 並觸發 E_WARNING
。
檢查可讀性和可寫性
將檔名傳遞給 is_writable
和 is_readable
函式分別檢查檔案是可寫還是可讀。
如果檔案不存在,函式會優雅地返回 false
。
檢查檔案訪問/修改時間
使用 filemtime
和 fileatime
返回上次修改或訪問檔案的時間戳。返回值是 Unix 時間戳 - 有關詳細資訊,請參閱使用日期和時間 。
echo "File was last modified on " . date("Y-m-d", filemtime("file.txt"));
echo "File was last accessed on " . date("Y-m-d", fileatime("file.txt"));
使用 fileinfo 獲取路徑部分
$fileToAnalyze = ('/var/www/image.png');
$filePathParts = pathinfo($fileToAnalyze);
echo '<pre>';
print_r($filePathParts);
echo '</pre>';
這個例子將輸出:
Array
(
[dirname] => /var/www
[basename] => image.png
[extension] => png
[filename] => image
)
哪個可以用作:
$filePathParts['dirname']
$filePathParts['basename']
$filePathParts['extension']
$filePathParts['filename']
引數 | 細節 |
---|---|
$ PATH | 要解析的檔案的完整路徑 |
$選項 | 四個可用選項之一[PATHINFO_DIRNAME,PATHINFO_BASENAME,PATHINFO_EXTENSION 或 PATHINFO_FILENAME] |
- 如果未傳遞選項(第二個引數),則返回關聯陣列,否則返回字串。
- 不驗證檔案是否存在。
- 只需將字串解析為部分即可。沒有對檔案進行驗證(沒有 mime 型別檢查等)
- 副檔名只是
$path
的最後一個副檔名。檔案image.jpg.png
的路徑將是.png
,即使它在技術上是.jpg
檔案。沒有副檔名的檔案不會返回陣列中的擴充套件元素。