php怎么打印字节数组_PHP输出打印字节数组内容

蓮花仙者
发布: 2025-12-20 20:53:02
原创
357人浏览过
PHP中查看字节数组内容有五种方法:一、foreach循环格式化输出十六进制;二、bin2hex转字符串后分块;三、unpack解析并带索引十进制显示;四、hexdump风格三栏分块输出;五、error_log记录xHH转义序列。

php怎么打印字节数组_php输出打印字节数组内容

如果在PHP中需要查看字节数组的实际内容,例如调试二进制数据、网络协议响应或加密输出,直接使用print_rvar_dump可能无法清晰呈现原始字节值。以下是几种准确输出字节数组内容的方法:

一、使用foreach循环逐字节格式化输出

该方法适用于任意长度的字节数组,将每个字节以十进制或十六进制形式显式打印,便于人工核对原始值。

1、定义字节数组,例如:$bytes = [0x48, 0x65, 0x6C, 0x6C, 0x6F];

2、使用foreach遍历数组,对每个字节调用sprintf('%02X', $byte)转为大写两位十六进制字符串

立即学习PHP免费学习笔记(深入)”;

3、用echoprintf逐个输出,字节间以空格分隔

4、可在每行限制字节数(如16字节/行)提升可读性,通过$i % 16 === 0判断换行

二、使用bin2hex函数转换为十六进制字符串

该方法将整个字节数组一次性转为连续十六进制字符串,适合快速验证数据完整性或与协议文档比对。

1、确保输入为字符串类型字节数组,若为整数数组需先用pack('C*', ...$bytes)转换

2、调用bin2hex($binary_string)获取全小写十六进制字符串

3、使用strtoupper()统一转为大写格式(可选)

4、使用chunk_split()按每两个字符插入空格,例如:chunk_split($hex, 2, ' ')

三、使用unpack函数解析并格式化输出

该方法适用于已知字节数组结构的场景,能按指定格式(如无符号字节C*)批量解包,并支持索引标注。

1、将字节数组转换为二进制字符串:若原为整数数组,使用pack('C*', ...$bytes)

2、调用unpack('C*byte', $binary_string)生成键为byte1byte2等的关联数组

Content at Scale
Content at Scale

SEO长内容自动化创作平台

Content at Scale 154
查看详情 Content at Scale

3、遍历解包结果,对每个值使用sprintf('%03d', $val)补零至三位十进制显示

4、拼接输出时加入下标标识,例如"[0]: 72 [1]: 101"

四、使用hexdump风格分块输出

该方法模拟Linux hexdump -C输出格式,包含地址偏移、十六进制区、ASCII区三栏,适合分析较长字节数组。

1、计算总长度,按16字节每行划分区块

2、对每行起始地址使用sprintf('%08X', $offset)生成8位十六进制偏移量

3、提取当前行字节子串,用str_split($line, 1)拆分为单字节数组

4、对每个字节分别生成十六进制码(sprintf('%02X', ord($c)))和可打印ASCII字符(ctype_print($c) ? $c : '.'

5、三部分用固定宽度空格对齐,确保列对齐

五、使用error_log配合十六进制转义输出

该方法适用于后台调试场景,避免HTML渲染干扰,将字节数组以xHH转义序列形式记录到错误日志。

1、遍历字节数组,对每个字节生成'\x' . sprintf('%02X', $byte)格式字符串

2、使用implode('', $escaped)连接所有转义单元

3、调用error_log("Bytes: " . $escaped_string)写入PHP错误日志文件

4、关键提示:此方式不输出到页面,仅用于日志追踪,需确保log_errors开启且error_log路径可写

以上就是php怎么打印字节数组_PHP输出打印字节数组内容的详细内容,更多请关注php中文网其它相关文章!

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号