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

PHP:从十六进制字符串创建文件,php,string,file,hex,Php,String,File,Hex,我将一个文件的内容表示为一个十六进制字符串,并希望从该十六进制字符串重新创建该文件。我怎么做 附加信息 十六进制字符串取自firefox内存缓存条目,如下所示: about:cache-entry?client=HTTP&sb=1&key=http://www.google.co.uk/images/nav_logo40.png 我正在处理 00000000: 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44

我将一个文件的内容表示为一个十六进制字符串,并希望从该十六进制字符串重新创建该文件。我怎么做

附加信息
十六进制字符串取自firefox内存缓存条目,如下所示:

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

00000000:  89  50  4e  47  0d  0a  1a  0a  00  00  00  0d  49  48  44  52  .PNG........IHDR
我正在制作这个

file_put_contents($filename, pack('H*', $hex));
我对每一行重复相同的过程,因此最终得到一个包含所有十六进制值的大字符串。

您可以使用:

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


展开你的问题。什么被“撕碎”?您是在谈论文件二进制值的编码还是其他什么?请查看可用于提取firefox和chrome缓存项的其他信息。我测试了您的方法,但它不起作用。你能考虑一下我在附加信息中添加的内容,重新评估我的问题吗?确实如此。我的错误。我的脚本没有正确获得十六进制输出。现在全部修复:)
file_put_contents($filename, pack('H*', $hex));
var_dump(pack('H*', '313233'));  // string(3) "123"