【问题标题】:PHP: create file from an HEX stringPHP:从十六进制字符串创建文件
【发布时间】:2011-08-05 11:43:01
【问题描述】:

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

其他信息
十六进制字符串取自 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

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

【问题讨论】:

  • 展开您的问题。什么被“诅咒”了?您是在谈论文件的二进制值的编码还是其他?
  • 请参阅附加信息
  • 您可以使用this little script提取firefox和chrome的缓存条目。

标签: php string file hex


【解决方案1】:

你可以使用pack:

file_put_contents($filename, pack('H*', $hex));

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

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

【讨论】:

  • 我测试了你的方法,但它不起作用。考虑到我在附加信息中添加的内容,您能否重新评估我的问题?
  • 确实如此。我的错。我的脚本没有正确获得十六进制输出。现在全部修复:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
  • 2020-11-07
  • 1970-01-01
  • 2018-09-13
  • 2010-12-27
相关资源
最近更新 更多