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

Max*_*Max 3 php string hex file

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

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

about:cache-entry?client=HTTP&sb=1&key=http://www.google.co.uk/images/nav_logo40.png
Run Code Online (Sandbox Code Playgroud)

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

00000000:  89  50  4e  47  0d  0a  1a  0a  00  00  00  0d  49  48  44  52  .PNG........IHDR
Run Code Online (Sandbox Code Playgroud)

我正在生产这个

89504e470d0a1a0a0000000d49484452
Run Code Online (Sandbox Code Playgroud)

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

Gum*_*mbo 5

您可以使用pack

file_put_contents($filename, pack('H*', $hex));
Run Code Online (Sandbox Code Playgroud)

这会将十六进制表示法的八位字节串转换为二进制:

var_dump(pack('H*', '313233'));  // string(3) "123"
Run Code Online (Sandbox Code Playgroud)