如何从 PHP 中的二进制数据中获取可读字符串


How to get a readable string from binary data in PHP?

>我有一个字符串,其中包含一些不可打印的字节。我想将此字符串转换为人类可读的格式。不可打印的字符可以用类似 ?或 <07>,可打印字符应保持不变。

在PHP中有没有简单的方法可以做到这一点?

有很多很多方法可以做这样的事情。

我的选择是:

$string = preg_replace_callback('/['x00-'x08'x0B'x0C'x0E-'x1F]/',function($char) {
    // format as desired, for instance:
    return "{".dechex(ord($char[0]))."}";
},$string);

您可以根据需要定义"不可打印",我在那里所做的基本上是"空间之前的所有内容,但允许 Tab、CR 和 LF"。