我有一个十六进制字符串表示的文件的内容,我想从该十六进制字符串重新创建该文件。我该怎么做呢?
十六进制字符串取自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"