📅  最后修改于: 2023-12-03 15:28:19.633000             🧑  作者: Mango
在 PHP 中,我们可以通过一系列函数来获取一个文件的各种属性,包括文件类型、文件大小、文件权限等等。
我们可以使用 mime_content_type()
函数来获取指定文件的 MIME 类型。该函数的参数为文件的路径,它会返回文件的 MIME 类型,例如对于一个名为 example.jpg
的图片文件,该函数返回的结果为 image/jpeg
。
$filePath = 'path/to/example.jpg';
$mimeType = mime_content_type($filePath);
要获取一个文件的大小,可以使用 filesize()
函数。该函数的参数为文件的路径,它会返回文件的字节数,例如对于一个大小为 1 MB 的文件,该函数返回的结果为 1048576。
$filePath = 'path/to/example.jpg';
$fileSize = filesize($filePath);
需要注意的是,该函数只能获取本地文件系统中的文件大小,对于通过网络获取的文件,使用此方法获取文件大小可能不准确。
要获取文件的权限,可以使用 fileperms()
函数。该函数的参数为文件的路径,它会返回文件的权限,以八进制数表示。
$filePath = 'path/to/example.jpg';
$filePerms = fileperms($filePath);
// 返回值为 0100644
要将返回的八进制数转化为实际的权限形式,可以使用 decoct()
函数将其转化为八进制字符串:
$filePath = 'path/to/example.jpg';
$filePerms = fileperms($filePath);
$permsString = substr(decoct($filePerms), -4);
// 返回值为 '0644'
其中字符串的前两位表示文件所有者的权限,第三位表示文件所属组的权限,最后一位表示其他用户的权限。
要获取一个文件的创建时间和修改时间,可以使用 filectime()
和 filemtime()
函数。两者的参数均为文件的路径,filectime()
返回文件的创建时间,filemtime()
返回文件的修改时间,均返回一个 Unix 时间戳。
$filePath = 'path/to/example.jpg';
$fileCreationTime = filectime($filePath);
$fileModificationTime = filemtime($filePath);
如果想要将 Unix 时间戳转化为日期时间字符串,可以使用 date()
函数:
$filePath = 'path/to/example.jpg';
$fileCreationTime = filectime($filePath);
$fileModificationTime = filemtime($filePath);
$creationTimeString = date('Y-m-d H:i:s', $fileCreationTime);
$modificationTimeString = date('Y-m-d H:i:s', $fileModificationTime);
// 返回值分别为创建时间和修改时间的日期时间字符串