iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP中有哪些文件系统函数
  • 550
分享到

PHP中有哪些文件系统函数

2023-06-20 15:06:26 550人浏览 安东尼
摘要

这篇文章主要讲解了“PHP中有哪些文件系统函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中有哪些文件系统函数”吧!从这篇文章开始,我们将学习一系列的PHP文件系统相关函数。其实这些

这篇文章主要讲解了“PHP中有哪些文件系统函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中有哪些文件系统函数”吧!

从这篇文章开始,我们将学习一系列的PHP文件系统相关函数。其实这些函数中,有很多都是我们经常用到的,大家并不需要刻意地去记住它们,只要知道有这么个东西,在使用的时候记得来查文档就可以了。

文件路径相关函数

文件路径相关的函数往往在一些框架中会比较常见,而且多会配合 \_\_FILE\_\_ 、 \_\_DIR\_\_ 之类的魔术常量使用。

echo "1) ".basename("/etc/sudoers.d", ".d"), PHP_EOL;echo "2) ".basename("/etc/passwd"), PHP_EOL;echo "3) ".basename("/etc/"), PHP_EOL;echo "4) ".basename("."), PHP_EOL;echo "5) ".basename("/"), PHP_EOL;echo "6) ".basename("/usr/local/Cellar/php/7.3.9_1/README.md"), PHP_EOL;// 1) sudoers// 2) passwd// 3) etc// 4) .// 5) // 6) README.md

basename() 函数是获得路径中的文件名,它有两个参数,第一个是文件的路径,第二个是过滤掉的内容,比如第一条测试语句我们过滤掉文件的后缀名。

echo "1) " . dirname("/etc/passwd") , PHP_EOL;echo "2) " . dirname("/etc/") , PHP_EOL;echo "3) " . dirname("."), PHP_EOL;// 1) /etc// 2) /// 3) .

dirname() 返回的是路径中的路径部分,也就是不包含文件名的那部分内容,和 basename() 正好是相反的功能。

print_r(pathinfo('/usr/local/Cellar/php/7.3.9_1/README.md'));// Array// (//     [dirname] => /usr/local/Cellar/php/7.3.9_1//     [basename] => README.md//     [extension] => md//     [filename] => README// )echo realpath('./../../..//../etc/passwd'), PHP_EOL;// /private/etc/passwd

pathinfo() 函数用于以数组的形式返回路径中的信息,从结果来看,我们可以看到文件的 dirname 部分,basename 部分,以及文件的扩展名 extension 和不包含扩展名的 filename 内容。

realpath() 返回的是规范化的绝对路径名,它扩展所有的符号连接并且处理输入的路径中的 ./ 、 ../ 以及多余的 / ,返回的内容是标准规范的绝对路径。

修改文件所属相关信息

接下来,我们学习一些修改文件相关属性的函数,主要就是在 linux 系统环境中的文件权限信息的操作。

当然,首先我们得创建一个文件。和 Linux 中的命令是非常类似的。

touch('test3.txt');

touch() 函数除了给出要创建的文件名之外,还有两个可选参数可以指定文件的创建时间及访问时间,不给参数的话默认就是当前时间。这个文件名可以是相对或绝对路径中有权限的目录,并在该目录下创建一个空的文件。

echo fileowner('test.txt'), PHP_EOL; // 501chown('test.txt', 'www');clearstatcache();echo fileowner('test.txt'), PHP_EOL; // 70

通过 fileowner() 函数,我们可以获得某个文件所属的用户,默认情况下我们的用户是当前运行 PHP 脚本的用户,也就是系统目前的登录用户。

在这里,我们使用 chown() 函数,将用户改为 www 用户。clearstatcache() 是用于清理文件系统的缓存信息,如果不清理一下的话,fileowner() 返回的依然还是之前的用户信息。

echo filegroup('test.txt'), PHP_EOL; // 20chgrp('test.txt', 'www');clearstatcache();echo filegroup('test.txt'), PHP_EOL; // 70echo substr(sprintf('%o', fileperms('test.txt')), -4), PHP_EOL; // 0766chmod('test.txt', 0777);clearstatcache();echo substr(sprintf('%o', fileperms('test.txt')), -4), PHP_EOL; // 0777

同理,使用 filegroup() 函数获得文件的属组信息,chgrp() 用于修改文件的属组。fileperms() 用于返回文件的权限信息,它返回的是数字模式的文件访问权限,这里我们使用 sprintf() 格式化结果后获得我们常用的 Linux 系统权限格式。

chmod() 函数用于修改文件的权限,它的权限参数是三个 8 进制数据组成的数字,也就是代表 Linux 系统中的 1 、2 、4 和它们的组合,所以我们需要在前面再加上一个 0 用于确保操作能够正常执行。关于系统文件权限的知识大家需要认真学习 Linux 系统中相关的内容。

注意,上述函数如果在命令行中运行失败,大部分原因是没有权限,可以使用 sudo 进行测试。在 fastcgi 中运行时,就更加需要注意权限问题,仅在我们服务器可以操作的目录中进行安全的文件权限修改。

print_r(stat('test.txt'));// Array// (//     [0] => 16777220//     [1] => 8707958352//     [2] => 33279//     [3] => 2//     [4] => 70//     [5] => 70//     [6] => 0//     [7] => 0//     [8] => 1603070453//     [9] => 1603070453//     [10] => 1603072836//     [11] => 4096//     [12] => 0//     [dev] => 16777220//     [ino] => 8707958352//     [mode] => 33279//     [nlink] => 2//     [uid] => 70//     [gid] => 70//     [rdev] => 0//     [size] => 0//     [atime] => 1603070453//     [mtime] => 1603070453//     [ctime] => 1603072836//     [blksize] => 4096//     [blocks] => 0// )

stat() 函数可以获取到指定文件的所有属性信息,在这里我们可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息。

软硬文件连接相关操作

在 Linux 系统中,有软连接和硬连接的相关知识。其实软连接就像是 windows 中的快捷方式,而硬连接相关于复制了一份数据。在 PHP 中,也为我们提供了创建软硬连接以及相关的一些操作。

link('test.txt', 'ltest.txt');echo linkinfo('ltest.txt'), PHP_EOL; // 16777220symlink('test.txt', 'ltest2.txt');echo linkinfo('ltest2.txt'), PHP_EOL; // 16777220print_r(lstat('ltest2.txt'));// Array// (//     [0] => 16777220//     [1] => 8707962848//     [2] => 41453//     [3] => 1//     [4] => 0//     [5] => 20//     [6] => 0//     [7] => 8//     [8] => 1603072717//     [9] => 1603072717//     [10] => 1603072717//     [11] => 4096//     [12] => 0//     [dev] => 16777220//     [ino] => 8707962848//     [mode] => 41453//     [nlink] => 1//     [uid] => 0//     [gid] => 20//     [rdev] => 0//     [size] => 8//     [atime] => 1603072717//     [mtime] => 1603072717//     [ctime] => 1603072717//     [blksize] => 4096//     [blocks] => 0// )

使用 link() 函数创建的就是一个指定文件的硬连接文件,而使用 symlink() 创建的则是一个软连接文件。相对来说,我们使用软连接的场景会更多一些。lstat() 就和 stat() 函数的功能一样,查看文件的各种属性信息,不过 lstat() 函数针对的是软硬连接文件。

lchown('ltest2.txt', 'zhangyue');lchgrp('ltest2.txt', 'staff');// lrwxr-xr-x  1 zhangyue  staff      8 Oct 19 09:58 ltest2.txt -> test.txt

同样地,我们也可以修改软硬连接的用户和用户组信息,不过它们的信息不能通过 fileowner() 或 filegroup() 查看。因为它们是连接文件,本身还是和原始文件绑定在一起的,使用 fileowner() 这类的函数查看到的依然是原始文件的信息。我们可以在系统环境中使用 ls -l 查看连接文件的用户和用户组信息是否修改成功。

总结

今天的内容比较简单,而且修改权限的操作也并不常用。不过对于系统安全来,它们还是非常有用的,比如对于上传来说,我们要预防上传可执行文件的话,就可以通过修改文件的权限来让文件无法直接运行,从而起到安全保护的作用。

另外,目录路径相关的操作也是一些框架的基础,几乎所有框架的入口或者说是 Composer 的入口,都会见到 dirname() 以及 basename() 之类函数的身影。

测试代码:

https://GitHub.com/zhangyue0503/dev-blog/blob/master/php/202010/source/6.PHP中的文件系统函数(一).php

感谢各位的阅读,以上就是“PHP中有哪些文件系统函数”的内容了,经过本文的学习后,相信大家对PHP中有哪些文件系统函数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: PHP中有哪些文件系统函数

本文链接: https://www.lsjlt.com/news/297832.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP 中有哪些文件系统函数
    本篇文章为大家展示了PHP 中有哪些文件系统函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。函数名称描述basename返回路径中的文件名部分chgrp改变文件所属的组chmod改变文件模式cho...
    99+
    2023-06-04
  • PHP中有哪些文件系统函数
    这篇文章主要讲解了“PHP中有哪些文件系统函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中有哪些文件系统函数”吧!从这篇文章开始,我们将学习一系列的PHP文件系统相关函数。其实这些...
    99+
    2023-06-20
  • PHP中的文件系统函数有哪些
    PHP中的文件系统函数有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。文件路径相关函数文件路径相关的函数往往在一些框架中会比较常见,而且多会配合 \_\_FILE\_\_ ...
    99+
    2023-06-20
  • PHP包含文件函数有哪些
    在PHP中,有以下几种方法可以包含文件:1. include():该函数会包含指定的文件,并在包含过程中产生警告和错误,但不会导致脚...
    99+
    2023-09-26
    PHP
  • PHP文件操作的函数有哪些
    本文小编为大家详细介绍“PHP文件操作的函数有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP文件操作的函数有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一:PHP文件操作函数什么意思?在PHP中...
    99+
    2023-06-29
  • JavaScript中的系统函数有哪些
    这篇文章主要介绍JavaScript中的系统函数有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.encodeURI("");返回一个URI字符串编码后的结果:var urlStr=enco...
    99+
    2023-06-03
  • php文件系统中创建需要用到哪些类型的函数
    这篇文章主要介绍了php文件系统中创建需要用到哪些类型的函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是文件系统文件系统只是PHP知识的一个完整的模块而已。对所有的文...
    99+
    2023-06-15
  • centos7文件系统有哪些
    centos7中的文件系统有:1.tmpfs,基于内存的文件系统;2.swap,交互分区的文件系统;3.Ext3,日志文件系统;4.XFS,高性能的日志文件系统;centos7中的文件系统有以下几种tmpfstmpfs是一种基于内存的文件系...
    99+
    2024-04-02
  • Linux系统中常见的文件系统有哪些?
      Linux系统是现在非常受欢迎的操作系统,在Linux之中,一切都是文件,因为有很多操作都是依靠文件系统才可以完成的,而且文件系统可以满足用户正常的使用,那么Linux中常见的文件系统有哪些为大家介绍一下。  总体来说,在Linux之中...
    99+
    2023-06-05
  • Linux中有哪些有哪些常用的文件系统
    本篇文章给大家分享的是有关Linux中有哪些有哪些常用的文件系统,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Linux操作系统使用虚拟文件系统(VFS)向上和用户进程文件访问...
    99+
    2023-06-13
  • MySQL中系统信息函数有哪些
    小编给大家分享一下MySQL中系统信息函数有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!系统信息函数(1)获取MySQL版本号、连接数和数据库名的函数(2)获取用户名的函数(3)获取...
    99+
    2024-04-02
  • linux系统中文件属性有哪些
    这篇文章给大家分享的是有关linux系统中文件属性有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访...
    99+
    2023-06-13
  • Linux系统中有哪些重要文件
    Linux系统中有哪些重要文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. profile文件1.1 profile文件的作用profile(/etc/profile...
    99+
    2023-06-16
  • PHP 函数库中有哪些函数用于处理文件和目录?
    php 函数库提供了丰富的文件和目录处理函数,包括:文件处理函数:读取和写入文件、检查文件是否存在、删除文件。目录处理函数:创建和删除目录、扫描目录、检查路径是否指向目录、打开和读取目录...
    99+
    2024-04-27
    文件处理 目录处理
  • PHP 中如何使用clearstatcache 文件系统函数
    这篇文章给大家介绍PHP 中如何使用clearstatcache 文件系统函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。定义和用法clearstatcache - 清除文件状态缓存版本支持PHP4PHP5...
    99+
    2023-06-04
  • PHP中如何使用 file文件系统函数
    PHP中如何使用 file文件系统函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。file - 把整个文件读入一个数组中返回数组中的文件。 数组的每个元素对应于文件...
    99+
    2023-06-04
  • 有哪些 PHP 函数可用于文件操作?
    php 提供以下文件操作函数:打开文件:fopen(文件路径,模式)读取文件:fread(文件句柄,字节数)、fgets(文件句柄)写入文件:fwrite(文件句柄,新内容)关闭文件:f...
    99+
    2024-04-20
    php文件操作
  • Node.js中常用的文件系统有哪些
    这篇“Node.js中常用的文件系统有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Node.js中常用的文件系统有哪些...
    99+
    2023-07-05
  • PHP中有哪些数值函数
    本篇文章给大家分享的是有关PHP中有哪些数值函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP本身是一种简单而强大的语言。PHP语言拥有核心特性如强大的字符串和数组处理能...
    99+
    2023-06-17
  • PHP文件上传用的常见函数有哪些
    本文小编为大家详细介绍“PHP文件上传用的常见函数有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP文件上传用的常见函数有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1. deldotdeldot...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作