📜  这是php中的文件属性(1)

📅  最后修改于: 2023-12-03 15:28:19.633000             🧑  作者: Mango

PHP 中的文件属性

在 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);
// 返回值分别为创建时间和修改时间的日期时间字符串