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

发布于 2024-11-01 02:48:00 字数 577 浏览 1 评论 0原文

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

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

我正在生成此

89504e470d0a1a0a0000000d49484452

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

I have the content of a file represented as an Hex string and I want to re-create that file from that hex string. How can I do it?

Additional information
The hex string is taken from firefox memory cache entries such as the one below:

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

I am processing the <pre> element from these entries to extract and concatenate the HEX values. So from the below data output line obtained from a cache entry:

00000000:  89  50  4e  47  0d  0a  1a  0a  00  00  00  0d  49  48  44  52  .PNG........IHDR

I am producing this

89504e470d0a1a0a0000000d49484452

I am repeating the same process for every line so that I end up with 1 big string containing all hex values concatenated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼前雾蒙蒙 2024-11-08 02:48:00

您可以使用 pack

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

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

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

You can use pack:

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

That will turn a string of octets in hexadecimal notation into binary:

var_dump(pack('H*', '313233'));  // string(3) "123"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文