我想知道是否有一种方法可以将文件中的数据存储在文件中?就像你右键单击Windows中的文件,然后设置它的属性。我可以在PHP中阅读这些属性吗?
我真正想做的是,我想将图像上传到目录,当我在PHP页面中显示图像时,我希望直接从jpg中获取alt
属性(或者png)文件的“属性”。
我已经尝试过PHP的finfo_file()
功能,但没有成功。
感谢您的帮助。
答案 0 :(得分:2)
我想知道是否有一种方法可以将文件中的数据存储在文件中?就像你右键单击Windows中的文件,然后设置它的属性
Windows可以通过两种方式显示文件的属性。第一种方法是,如果它知道文件格式,文件格式可以包含元数据。例如JPEG和Word文档。在这两种格式中,有关文件(作者等)的元数据都包含在文件中,Windows知道如何显示它。可以存储元数据的第二种方式是具有NTFS文件系统的备用数据流(ADS)。可以在http://www.irongeek.com/i.php?page=security/altds
找到使用ADS的良好指南我可以在PHP中阅读这些属性吗?
对于文件内元数据,它取决于文件格式。可以通过exif-read-data
函数(http://php.net/manual/en/function.exif-read-data.php)
我没有方便的NTFS分区来测试它,但我相信如果在Windows中运行它并访问NTFS文件系统,你可以在PHP中访问Alternative Data Streams。
我真正想要做的是,我想将图像上传到目录,当我在PHP页面中显示图像时,我想直接从jpg(或png)文件中获取alt属性“属性”。
如上所述,exif-read-data
函数可以读取包含所需元数据的JPEG。 PNG不保存EXIF数据,因此没有相应的功能(PNG可以包含元数据,但似乎没有标准)。
如果用户在上传文件时包含名称和其他数据,则可以存储该文件并在显示图像时检索该文件。数据可以存储在任何地方,例如在数据库中(可能将文件名链接到数据),或者在文件系统上(对于名为image1.png
的图像,您可以将作者的名称存储在名为image1.png.txt
的文件中。
答案 1 :(得分:1)
stat()
可能是您想要的数据最接近的。但它只提供系统级元数据,如 uid 。
有关更详细的元数据,您需要自行跟踪。
答案 2 :(得分:1)
特别是对于图像,您可能想尝试读取图像的exif数据。 PHP当然有这样做的功能: