PHP中与.toString('binary')功能等价的实现方法是什么?
PHP 中等同于 JavaScript
.toString('binary') 的实现方案 JavaScript 中 Buffer 调用 .toString('binary') 的本质是将缓冲区中的每个字节按原始值转换为字符拼接成字符串,PHP 本身字符串是二进制安全的,对应实现可以参考以下方案:
- 如果你是获取 PHP 输出缓冲区的内容,直接通过
ob_get_contents()拿到的原始字符串就和.toString('binary')输出结果完全一致,无需额外转换,示例代码:
ob_start(); // 此处为写入缓冲区的业务逻辑 echo "测试内容\x00\x01\x02"; $binaryResult = ob_get_contents(); ob_end_clean(); // $binaryResult 即为等价的二进制格式字符串
- 如果你是处理其他二进制数据源(如文件读取、pack 生成的二进制流),可以通过以下自定义函数实现完全对齐的转换逻辑:
function bufferToBinary($buffer): string { $binaryStr = ''; $bufferLen = strlen($buffer); for ($i = 0; $i < $bufferLen; $i++) { $binaryStr .= chr(ord($buffer[$i])); } return $binaryStr; }
注意:PHP 7.0 及以上版本对二进制字符串的支持已经非常成熟,无特殊编码转换需求时,原生读取的二进制内容可以直接使用,不需要额外调用转换函数。
内容的提问来源于stack exchange,提问作者Théo Dulieu
相关产品推荐
相关产品推荐

