php - 在 php 中替代 linux 中的 xxd 命令
问题描述
我需要以与 Linux 程序相同的方式将 bin 文件转换为 PHP 中的字符串。
在linux中:xxd -g 1 data.bin
并输出:0000000: 02 50 45 10 02 06 54 62 43 20 05 20 11 07 21 12 .PE...TbC . ..!.
在 PHP 中,我尝试使用该bin2hex
函数,但我只得到数字02 50 45 10 02 06 54 62 43 20 05 20 11 07 21 12
。我还需要一个偏移量和文本表示。
偏移量是我在上面输入的字符串中的行号、第一个数字和一个冒号 ( 0000000:
)。这实际上不是问题,因为我可以编写代码来计算它,但更大的问题是文本表示(.PE...TbC . ..!.
)。
有人可以帮忙吗?我可以为此使用哪些功能?
解决方案
您可以使用正则表达式将不可打印的字符替换为 a .
(或您选择的任何字符)。
$data = hex2bin('02504510020654624320052011072112');
$text_representation = preg_replace('/[^[:print:]]/', '.', $data);
var_dump($text_representation);
推荐阅读
- makefile - 为什么 Make 不允许缩进的“if”语句?
- php - 具有 mongo db 问题的数据表
- java - 遍历实例变量的 ArrayList
- node.js - 以 50 为增量写入 json 文件
- javascript - 加载事件会等待加载css中的背景图像吗?
- python-3.x - 0 < 2 = ...错误?
- swift - 有人会解释这个处理 Timer.scheduledTimer(withTimeInterval: repeats: block:{}) 的 Swift 4 问题吗
- python - 使用 python 本地服务器将数据显示到 html 文件中
- javascript - 在 JavaScript 中使用摩擦力和动量滚动
- c++ - 如何将三对角矩阵创建为一维