该文主要介绍一下怎样应用PHP文件函数获取文件信息。首先我们来看看PHP文件函数的基本介绍
PHP文件函数dirname()和basename()的区别
dirname()获得文件目录路径的目录部分,而basename()获得不带目录的文件名
如何通过PHP文件函数获得文件基本信息?
之前介绍了PHP目录读取实例,我们只要在遍历目录(文件夹)函数listSubDir基础上增加PHP文件信息函数即可。listSubDir函数请参考PHP遍历目录(文件夹)实例。
1、在以下位置添加getFileInfo函数,输出文件信息
<?
if (is_file($newDir)) {
echo $dirC.$subFile.":文件属性<br/>";
getFileInfo($newDir);
}
?>
2、应用PHP文件函数获取文件信息函数实例代码
function getFileInfo($fileInfo)
{
echo "文件目录信息:<br/>";
echo "文件类型:".filetype($fileInfo)."<br/>";
echo "文件大小:".filesize($fileInfo)."<br/>";
echo "最近访问时间:".date("j F Y H:i",fileatime($fileInfo))."<br/>";
echo "最近修改时间:".date("j F Y H:i",filemtime($fileInfo))."<br/>";
echo "是否为可执行文件:".(is_executable($fileInfo)?"是":"否")."<br/>";
echo "是否为链接(Link):".(is_link($fileInfo)?"是":"否")."<br/>";
echo "是否可读:".(is_readable($fileInfo)?"是":"否")."<br/>";
echo "是否可写:".(is_writable($fileInfo)?"是":"否")."<br/>";
echo "文件绝对路径":realpath($fileInfo);
clearstatcache();
}
说明:
这段代码主要通过PHP文件函数获取如下信息:文件类型、文件大小、最近访问、修改时间、文件可读可写属性等。
知识点:
1、filetype函数:获取文件类型,如函数执行成功则返回如下值中的一个,否则则返回False。七个可能值:fifo、char、dir、block、link、file、unknown
2、filesize函数:获取文件大小,以字节计算
3、fileatime函数:文件最近访问时间,filemtime函数:文件最近修改时间。这两个PHP文件函数返回的时间戳类似于UNIX时间戳,所以需要通过Date函数进行格式化。
4、is_executable、is_link、is_readable、is_writable:这四个PHP文件函数分别返回文件是否可执行、是否是链接、是否可读、是否可写。
注意:PHP文件状态函数运行起来都比较费时,所以将会被自动缓存;如果希望清除缓存,可以使用clearstatcache()函数,以获取最新的文件信息。
说个题外话,上述这些PHP文件函数获取的文件信息你也可以通过stat($file)函数获取,其以数组形式返回文件的所有详细信息,你可以使用print_r函数输出看下。
5、realpath函数:返回文件的绝对路径,当需要找出文件在磁盘上的准确位置,则使用此函数。
以上这些函数对应文件名参数,如果所要获取的文件路径与PHP代码执行文件不在同一目录下,请注意需要带上具体的文件路径。
创建文件的方法
方式一:通常都使用PHP文件操作函数fopen以写入模式打开文件,再写入内容并保存,这样一个文件就创建好了。PHP文件如何写入?
方式二:使用PHP文件操作函数touch创建,touch函数有三个参数:创建的文件名、访问时间、修改时间,其中访问时间和修改时间是可选的,默认值为当前系统时间。如果指定的文件不存在,那么它将被自动建立。通过touch函数你可以修改创建文件的最近访问和修改时间,这两个参数都是UNIX时间戳,你需要通过mktim函数进行转换。
移动和复制文件的PHP文件函数
移动文件可以通过rename函数,复制文件可以使用copy函数,这两个PHP文件操作函数的区别在于rename函数是将老文件移动到新的目录下,而copy函数顾名思义是将老文件复制到新目录下,源目录下的文件仍然是存在的。
PHP删除文件的方法
在之前PHP目录函数文章中,我说过在删除目录时必须为空目录,当目录下有文件时,我们必须删除文件才能删除目录,那么文件删除有什么方法呢?
一种方法是通过PHP文件函数unlink实现,另一种方法是通过system函数执行系统命令,比如在WINDOWS系统下执行删除文件的操作。
创建、移动、复制、删除文件的代码实例如下:
<?php
$fileDir = "leapsoulcn/fileinfo.txt";
touch($fileDir,mktime(12,55,55,4,10,2000),mktime(12,55,55,4,10,2005));
//删除文件的两种方法,使用时请注销一种方法
system("del leapsoulcnfileinfo.txt");
unlink($fileDir);
//移动文件
rename("leapsoulcn/newfileinfo.txt","leapsoulcn/php/fileinfo.txt");
//复制文件
copy("leapsoulcn/php/fileinfo.txt","leapsoulcn/newfileinfo.txt");
?>
本教程非常适合PHP初学者学习使用。