使用 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 ÿÙ
有人可以解释一下吗:
- 为什么
[=13=]
分隔线消失了?
- 如何使用PHP获取信息?
编辑
问题已解决,但对于那些寻求更智能解决方案的人来说,这是我尝试从中获取数据部分的文件: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 让我这样做并且没有人提出更好的解决方案。
我想使用 PHP 从 jpeg 文件中提取可变长度的信息,但它是 而不是 exif 数据。
如果我用一个简单的文本编辑器打开 jpeg,我可以看到所需的信息位于文件末尾并由 [=13=]
分隔。
像这样:
[=11=]DATA[=11=]DATA00DATA[=11=]DATA[=11=]0[=11=]DATA
现在,如果我使用 PHP 的 file_get_contents()
将文件加载到字符串中,分隔符 [=13=]
就会消失,其他符号会出现。
像这样:
ÿëžDATADATADATADATADATA ÿÙ
有人可以解释一下吗:
- 为什么
[=13=]
分隔线消失了? - 如何使用PHP获取信息?
编辑
问题已解决,但对于那些寻求更智能解决方案的人来说,这是我尝试从中获取数据部分的文件: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 让我这样做并且没有人提出更好的解决方案。