在PHP中操作文件的扩展属性_第1页
在PHP中操作文件的扩展属性_第2页
在PHP中操作文件的扩展属性_第3页
在PHP中操作文件的扩展属性_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第在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','shuoming',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)"shuoming"

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等应用的相关知识。专注于一个领域,同时扩展其它领域的知识,才是学习的最佳方式。

测试代码:

/zhangyue05

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论