获取文件信息
检查路径是目录还是文件
该 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
文件。没有扩展名的文件不会返回数组中的扩展元素。