从这篇文章开始,我们将学习一系列的 PHP 文件系统相关函数.其实这些函数中,有很多都是我们经常用到的,大家并不需要刻意地去记住它们,只要知道有这么个东西,在使用的时候记得来查文档就可以了.
文件路径相关的函数往往在一些框架中会比较常见,而且多会配合 __FILE__ 、 __DIR__ 之类的魔术常量使用.
basename() 函数是获得路径中的文件名,它有两个参数,第一个是文件的路径,第二个是过滤掉的内容,比如第一条测试语句我们过滤掉文件的后缀名.
dirname() 返回的是路径中的路径部分,也就是不包含文件名的那部分内容,和 basename() 正好是相反的功能.
pathinfo() 函数用于以数组的形式返回路径中的信息,从结果来看,我们可以看到文件的 dirname 部分,basename 部分,以及文件的扩展名 extension 和不包含扩展名的 filename 内容.
realpath() 返回的是规范化的绝对路径名,它扩展所有的符号连接并且处理输入的路径中的 ./ 、 ../ 以及多余的 / ,返回的内容是标准规范的绝对路径.
此时此刻呢,我们学习一些修改文件相关属性的函数,主要就是在 Linux 系统环境中的文件权限信息的操作.
当然,首先我们得创建一个文件.和 Linux 中的命令是非常类似的.
touch() 函数除了给出要创建的文件名之外,还有两个可选参数可以指定文件的创建时间及访问时间,不给参数的话默认就是当前时间.这个文件名可以是相对或绝对路径中有权限的目录,并在该目录下创建一个空的文件.
通过 fileowner() 函数,我们可以获得某个文件所属的用户,默认情况下我们的用户是当前运行 PHP 脚本的用户,也就是系统目前的登录用户.今天这一节,我们使用 chown() 函数,将用户改为 www 用户.clearstatcache() 是用于清理文件系统的缓存信息,如果不清理一下的话,fileowner() 返回的依然还是之前的用户信息.
注意,上述函数如果在命令行中运行失败,大部分原因是没有权限,可以使用 sudo 进行测试.在 fastcgi 中运行时,就更加需要注意权限问题,仅在我们服务器可以操作的目录中进行安全的文件权限修改.
stat() 函数可以获取到指定文件的所有属性信息,今天这一节我们可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息.
在 Linux 系统中,有软连接和硬连接的相关知识.其实软连接就像是 Windows 中的快捷方式,而硬连接相关于复制了一份数据.在 PHP 中,也为我们提供了创建软硬连接以及相关的一些操作.
使用 link() 函数创建的就是一个指定文件的硬连接文件,而使用 symlink() 创建的则是一个软连接文件.相对来说,我们使用软连接的场景会更多一些.lstat() 就和 stat() 函数的功能一样,查看文件的各种属性信息,不过 lstat() 函数针对的是软硬连接文件.
同样地,我们也可以修改软硬连接的用户和用户组信息,不过它们的信息不能通过 fileowner() 或 filegroup() 查看.因为它们是连接文件,本身还是和原始文件绑定在一起的,使用 fileowner() 这类的函数查看到的依然是原始文件的信息.我们可以在系统环境中使用 ls -l 查看连接文件的用户和用户组信息是否修改成功.
今天的内容比较简单,而且修改权限的操作也并不常用.不过对于系统安全来,它们还是非常有用的,比如对于上传来说,我们要预防上传可执行文件的话,就可以通过修改文件的权限来让文件无法直接运行,从而起到安全保护的作用.另外,目录路径相关的操作也是一些框架的基础,几乎所有框架的入口或者说是 Composer 的入口,都会见到 dirname() 以及 basename() 之类函数的身影.
测试代码:
中的文件系统函数(一).php
参考文档:
①.、修改php.ini,在php.ini中找到data.timezone =去掉它前面的;号,然后设置data.timezone = "Asia/Shanghai";即可.
一些常用的时区标识符说明:
Asia/Shanghai – 上海
Asia/Chongqing – 重庆
Asia/Urumqi – 乌鲁木齐
Asia/Hong_Kong – 香港
Asia/Macao – 澳门
Asia/Taipei – 台北
Asia/Singapore – 新加坡
①获取文件创建时间示例:
$ctime=filectime("chinawinxp.txt");
echo?"创建时间:".date("Y-m-d?H:i:s",$ctime);
$mtime=filemtime("chinawinxp.txt");
echo?"修改时间:".date("Y-m-d?H:i:s",$mtime);
以上就是土嘎嘎小编为大家整理的包含php文件的ctime属性的词条相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!