我有一个以十六进制字符串表示的文件内容,我想从该十六进制字符串重新创建该文件。我该怎么做?
附加信息
十六进制字符串取自 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
我对每一行重复相同的过程,这样我最终得到一个包含所有连接的十六进制值的大字符串。
最佳答案
您可以使用 pack
:
file_put_contents($filename, pack('H*', $hex));
这会将十六进制表示的一串八位字节转换为二进制:
var_dump(pack('H*', '313233')); // string(3) "123"
关于PHP:从十六进制字符串创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662779/