PHP:从十六进制字符串创建文件

3

我有一个文件的内容,用十六进制字符串表示,我想通过这个十六进制字符串重新创建该文件。我该如何操作?

额外信息
这个十六进制字符串来自于Firefox内存缓存条目,例如下面的一个:

about:cache-entry?client=HTTP&sb=1&key=http://www.google.co.uk/images/nav_logo40.png

我正在处理这些条目中的<pre>元素,以提取并连接HEX值。因此,从缓存条目获取以下数据输出行:

00000000:  89  50  4e  47  0d  0a  1a  0a  00  00  00  0d  49  48  44  52  .PNG........IHDR

我正在制作这个。
89504e470d0a1a0a0000000d49484452

我会为每一行重复相同的过程,以便最终得到包含所有十六进制值连接的一个大字符串。

请详细说明您的问题。什么被“hexed”了?您是在谈论文件的二进制值编码还是其他内容? - Michael J.V.
请参见附加信息 - Max
你可以使用这个小脚本来提取Firefox和Chrome的缓存条目。 - zxcmehran
1个回答

5
您可以使用 pack 函数:
file_put_contents($filename, pack('H*', $hex));

这将把一个十六进制表示的八位字符串转换为二进制:

var_dump(pack('H*', '313233'));  // string(3) "123"

我测试了你的方法,但它不起作用。请您重新评估我的问题,并考虑我添加到“附加信息”中的内容。 - Max
确实是这样。我的错误。我的脚本没有正确获取十六进制输出。现在已经修复了 :) - Max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接