我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在PHP中操作文件的扩展属性

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在PHP中操作文件的扩展属性

在操作系统的文件中,还存在着一种我们可以自己定义的文件属性。这些属性不是保存在文件内容中,也不是直接可以通过 ls -al 所能看到的内容。它们可以将一个键值对信息永久得关联到文件上,一般现在的 Linux 系统都支持这样的文件扩展属性的功能。在操作系统中我们可以通过 setfattr、 getfattr、 attr 这些命令来操作它们。当然,PHP 也为我们提供了一个扩展可以用于对文件的扩展属性进行操作。

添加扩展属性


$file = __FILE__;

var_dump(xattr_set($file, 'Author', 'ZyBlog')); // bool(true)
var_dump(xattr_set($file, 'Num.', 121 )); // bool(true)
var_dump(xattr_set($file, 'Description', 'shuo ming', XATTR_ROOT)); // bool(true)

首先我们定义了操作的文件,在这里我们直接使用 __FILE__ 魔术常量来操作当前我们测试的这个 php 文件。然后使用 xattr_set() 就可以设置文件的扩展属性了。文件的扩展属性有命名空间的概念,PHP 中也相应地为我们提供了 普通(user)命名空间 和 XATTR_ROOT(root命令空间) 两种形式。root 命名空间中的属性可以由超级用户设置,对其他用户不可见,而 user 命名空间则是根据文件的权限来定义的,也就是当前可以操作这个文件的用户就可以读取到这个文件的 user命名空间 所设置的这些扩展属性。

查看扩展属性列表


var_dump(xattr_list($file, XATTR_ROOT));
// array(1) {
//     [0]=>
//     string(11) "Description"
//   }

var_dump(xattr_list($file));
// array(2) {
//     [0]=>
//     string(4) "Num."
//     [1]=>
//     string(6) "Author"
//   }

xattr_list() 函数可以获取文件所定义的所有命名空间的键。它也是区分 user 和 root 命名空间的。

获得扩展属性内容


var_dump(xattr_get($file, 'Author')); // string(6) "ZyBlog"
var_dump(xattr_get($file, 'Description')); // bool(false)
var_dump(xattr_get($file, 'Description', XATTR_ROOT)); // string(9) "shuo ming"

xattr_get() 函数用于获得指定键的扩展属性内容。配合上面的 xattr_list() 函数就可以获取某个文件的所有扩展属性信息。如果我们不增加 XATTR_ROOT 参数的话,是无法读取到 root命名空间 中的内容的。

删除扩展属性


var_dump(xattr_remove($file, 'Num.')); // bool(true)
var_dump(xattr_list($file));
// array(1) {
//     [0]=>
//     string(6) "Author"
//   }

xattr_remove() 用于删除文件的扩展属性,我们直接删除了测试文件的 user命名空间 中的 Num. 属性。再次查看它的 xattr_list() 就只剩下 Author 了。同样地,这个函数也是支持第三个参数来指定是否是 root命名空间 的操作。

验证系统是否支持扩展属性操作


var_dump(xattr_supported($file)); // bool(true)

最后就是一个 xattr_supported() 函数,用于验证当前操作系统的文件系统是否支持 xattr 相关的操作。

总结

今天的内容非常地简单浅显,这个文件的扩展属性的功能说实话也是看到 PHP 中有这个功能扩展才回去查看了 Linux 系统中的相关文档。所以说,学习都是关联的,当我们在学习 PHP 的时候,顺带着也在学习 Linux ,同时更会经常接触到 MySQL 、 Nginx 等应用的相关知识。专注于一个领域,同时扩展其它领域的知识,才是学习的最佳方式。

测试代码:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/9.在PHP中操作文件的扩展属性.php

参考文档:

https://www.php.net/manual/zh/book.xattr.php

到此这篇关于在PHP中操作文件的扩展属性的文章就介绍到这了,更多相关php扩展属性内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在PHP中操作文件的扩展属性

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

下载Word文档

猜你喜欢

windows7如何显示文件扩展名windows7显示文件扩展名的操作流程

windows7操作系统中默认设置不显示文件扩展名,可是有些客户感觉显示出去便捷访问,那样windows7如何显示文件扩展名呢?方式非常简单,你先双击鼠标计算机图标,在打开界面中点击专用工具,挑选文件夹选项,随后转换到查询菜单栏,撤销启用“
2023-07-14

如何在 PHP 中获取文件扩展名

在本文中,我们将介绍在 PHP 中获取文件扩展名的方法。使用 pathinfo() 函数使用 SplFileInfo结构和 getExtension’函数在 PHP 中使用 pathinfo() 函数获取文件扩展名我们将使用内置
如何在 PHP 中获取文件扩展名
2024-02-27

xp显示文件扩展名的操作方法

xp显示文件扩展名的操作方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。文件扩展名是操作系统用来标志文件格式的一种机制。我们平时接触的电脑上的文件比如音乐、图片、软件等等
2023-06-14

python修改linux中文件(文件夹)的权限属性操作

今天生成的对流云团路径图片放在linux下,文件的权限都是rw,没有x,后续的别人的程序调用不了,这里附上对三个属性的简单解释,有不够的欢迎大家补充 Linux的权限不是很细致,只有RWX三种 r(Read,读取):对文件而言,具有读取文件
2022-06-03

PHP 函数在文件操作中的应用

php 文件操作函数可用于读取、写入、创建和删除文件。读取文件可使用file_get_contents()或fread()函数,写入文件可使用file_put_contents()或fwrite()函数,创建和删除文件分别使用fopen()
PHP 函数在文件操作中的应用
2024-04-15

怎么在PHP中操作临时文件

这篇文章给大家分享的是有关怎么在PHP中操作临时文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。获取 PHP 的默认临时创建文件目录学习过 Linux 操作系统的都会知道有一个目录是 /tmp 目录( Wind
2023-06-15

如何在PHP开发中优化文件操作和IO性能?

如何在PHP开发中优化文件操作和IO性能?在PHP开发过程中,文件操作和IO性能的优化是一个非常重要的方面。文件操作包括文件的读取、写入和删除等操作,IO性能则关注文件的输入输出速度。优化文件操作和IO性能可以提高网站或应用的响应速度和性能
如何在PHP开发中优化文件操作和IO性能?
2023-11-02

PHP 函数返回值的类型与 PHP 扩展的互操作性有什么关系?

php 函数返回值类型可表示为类型说明语法,明确指定了各函数的返回值类型。了解返回值类型对于创建与 php 核心引擎兼容的扩展至关重要,可避免意外转换、提高效率和增强代码可读性。具体而言,扩展函数可定义返回值类型,以便 php 引擎根据该类
PHP 函数返回值的类型与 PHP 扩展的互操作性有什么关系?
2024-04-15

网络操作系统在云计算时代的应用:赋能弹性和可扩展性

在云计算时代,网络操作系统(NOS)凭借其弹性、可扩展性和可编程性,在赋能企业实现数字化转型方面发挥着至关重要的作用。
网络操作系统在云计算时代的应用:赋能弹性和可扩展性
2024-03-05

php中怎样获取文件的时间属性

这篇文章将为大家详细讲解有关php中怎样获取文件的时间属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。文件中包含了三种时间属性(信息),分别为:创建时间、修改时间和上次访问时间。例如下面一
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录