欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

应用PHP文件函数获取文件信息实例教程

程序员文章站 2022-05-21 19:14:00
...
  上一篇PHP目录函数教程中主要介绍了目录(文件夹)读取,遍历的方法,但最基本的文件管理系统同时涉及到文件信息、文件大小读取以便检查磁盘使用情况,也需要获取文件修改或访问时间,删除或移动整理文件的功能,这些都需要通过PHP文件函数同文件系统交互。

基本PHP文件函数介绍

  PHP文件函数dirname()和basename()的区别

  dirname()获得文件目录路径的目录部分,而basename()获得不带目录的文件名

如何通过PHP文件函数获得文件基本信息?

  之前介绍了PHP目录读取实例,我们只要在遍历目录(文件夹)函数listSubDir基础上增加PHP文件信息函数即可。listSubDir函数请参考PHP遍历目录(文件夹)实例。

1、在以下位置添加getFileInfo函数,输出文件信息

1
2
3
4
5
6
7


if (is_file($newDir)) {
echo $dirC.$subFile.":文件属性
"
;

getFileInfo($newDir);
}
?>

2、应用PHP文件函数获取文件信息函数实例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

function getFileInfo($fileInfo)
{
echo "文件目录信息:
"
;

echo "文件类型:".filetype($fileInfo)."
"
;
echo "文件大小:".filesize($fileInfo)."
"
;

echo "最近访问时间:".date("j F Y H:i",fileatime($fileInfo))."
"
;
echo "最近修改时间:".date("j F Y H:i",filemtime($fileInfo))."
"
;
echo "是否为可执行文件:".(is_executable($fileInfo)?"是":"否")."
"
;
echo "是否为链接(Link):".(is_link($fileInfo)?"是":"否")."
"
;
echo "是否可读:".(is_readable($fileInfo)?"是":"否")."
"
;
echo "是否可写:".(is_writable($fileInfo)?"是":"否")."
"
;
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系统下执行删除文件的操作。

  创建、移动、复制、删除文件的代码实例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


$fileDir = "leapsoulcn/fileinfo.txt";

touch($fileDir,mktime(12,55,55,4,10,2000),mktime(12,55,55,4,10,2005));

//删除文件的两种方法,使用时请注销一种方法
system("del leapsoulcn\fileinfo.txt");

unlink($fileDir);

//移动文件
rename("leapsoulcn/newfileinfo.txt","leapsoulcn/php/fileinfo.txt");

//复制文件
copy("leapsoulcn/php/fileinfo.txt","leapsoulcn/newfileinfo.txt");
?>

  至此利用PHP文件函数获取文件信息,创建、移动、复制、删除文件的方法就介绍完毕了,结合之前介绍的PHP文件读写教程、PHP目录函数教程,PHP文件上传教程,应该说基本的PHP文件函数我都已全面涉及,非常适合PHP初学者学习使用。

  :PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。