用PHP从jpeg中提取信息

时间:2015-12-18 08:00:11

标签: php jpeg

我想使用PHP从jpeg文件中提取可变长度的信息,但它是不是 exif-data。

如果我使用简单的文本编辑器打开jpeg,我可以看到想要的信息位于文件的末尾,并由\00分隔。

像这样:

\00DATA\00DATA00DATA\00DATA\000\00DATA

现在,如果我使用PHP的file_get_contents()将文件加载到字符串中,则分隔符\00消失,其他符号出现。 像这样:

ÿëžDATADATADATADATADATA ÿÙ

有人可以请原声:

  • 为什么\00分隔符会消失?
  • 如何使用PHP获取信息?

修改

这个问题已经解决了,但对于那些寻求更智能解决方案的人来说,这里是我尝试从以下位置获取DATA部分的文件:https://www.dropbox.com/s/5cwnlh2kadvi6f7/test-img.jpg?dl=0(是的,我知道它已损坏)

2 个答案:

答案 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允许我这样做,没有人提出更好的解决方案。