php中的替代linux中的xxd命令



我需要将bin文件转换为PHP中的字符串,方法与Linux程序相同。

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 . ..!.)。

有人能帮忙吗?我可以用什么函数呢?

您可以使用正则表达式将不可打印的字符替换为.(或您选择的任何字符)。

$data = hex2bin('02504510020654624320052011072112');
$text_representation = preg_replace('/[^[:print:]]/', '.', $data);
var_dump($text_representation);

最新更新