【问题标题】:An alternative in php to the xxd command in linux在 php 中替代 linux 中的 xxd 命令
【发布时间】:2021-10-14 03:21:36
【问题描述】:

我需要在 PHP 中将 bin 文件转换为字符串,方法与 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 . ..!.)。

有人可以帮忙吗?我可以为此使用哪些功能?

【问题讨论】:

  • “偏移”是什么意思?为什么不编写计算这个偏移量的代码呢?
  • @NicoHaase 偏移量是我输入的字符串中的行号、第一个数字和一个冒号。这实际上不是问题,但更大的问题是文本表示。
  • 然后请通过编辑将所有详细信息添加到您的问题中

标签: php bin xxd bin2hex


【解决方案1】:

您可以使用正则表达式将non-printable characters 替换为.(或您选择的任何字符)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-03
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多