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

标签 php string file hex

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

附加信息
十六进制字符串取自 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"

关于PHP:从十六进制字符串创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662779/

相关文章:

php sleep 功能奇怪的行为

php - .htaccess 和 PHP 文件

php - 替换字符串 PHP 中最后一次出现的至少双倍换行符 (\n\n)

python - 从引号之间提取字符串

file - Grails资源插件重新加载失败

java - 使用共享资源拆分文件并处理每个部分

php - JSTree:使用 php 和 mysql 创建可扩展的树结构

php - 使用 jquery mysql 点击填充多个字段

从 R 中的字符串中删除\xa0\xa0

c++ - rdbuf() 读取垃圾