使用 PHP 从 jpeg 中提取信息

extract info from jpeg with PHP

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

如果我用一个简单的文本编辑器打开 jpeg,我可以看到所需的信息位于文件末尾并由 [=13=] 分隔。

像这样:

[=11=]DATA[=11=]DATA00DATA[=11=]DATA[=11=]0[=11=]DATA

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

ÿëžDATADATADATADATADATA ÿÙ

有人可以解释一下吗:

编辑

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

改用$data = exif_read_data("PATH/some.jpg")它会给你所有关于图像的headers数据,你可以在这里查看它的手册-http://php.net/manual/en/function.exif-read-data.php

我自己想出了一个解决方案。可能不漂亮,但适合我。

使用 urlencode(file_get_contents()) 我能够将 [=12=] 部分检索为 %00

所以现在它是这样写的:

%00DATA%00DATA%00DATA%00DATA%000%00DATA

我可以在 %00 部分拆分字符串。

我将接受这个答案,一旦 SO 让我这样做并且没有人提出更好的解决方案。