我想使用PHP从jpeg文件中提取可变长度的信息,但它是不是 exif-data。
如果我使用简单的文本编辑器打开jpeg,我可以看到想要的信息位于文件的末尾,并由\00
分隔。
像这样:
\00DATA\00DATA00DATA\00DATA\000\00DATA
现在,如果我使用PHP的file_get_contents()
将文件加载到字符串中,则分隔符\00
消失,其他符号出现。
像这样:
ÿëžDATADATADATADATADATA ÿÙ
有人可以请原声:
\00
分隔符会消失?修改
这个问题已经解决了,但对于那些寻求更智能解决方案的人来说,这里是我尝试从以下位置获取DATA部分的文件:https://www.dropbox.com/s/5cwnlh2kadvi6f7/test-img.jpg?dl=0(是的,我知道它已损坏)
答案 0 :(得分:1)
改为使用$data = exif_read_data("PATH/some.jpg")
,它会为您提供有关图片的所有标题数据,您可以在此处查看其手册 - http://php.net/manual/en/function.exif-read-data.php
答案 1 :(得分:1)
我自己想出了一个解决方案。可能不漂亮,但适合我。
使用urlencode(file_get_contents())
我能够将\00
部分检索为%00
。
现在它的内容如下:
%00DATA%00DATA%00DATA%00DATA%000%00DATA
我可以在%00
部分拆分字符串。
我会接受这个答案,一旦SO允许我这样做,没有人提出更好的解决方案。