php 二进制 文件,用php写出文件的二进制形式

本文探讨了如何使用PHP实现类似xxd的功能,将文件的二进制形式在终端显示。作者遇到的问题是echo和fwrite无法显示二进制,通过修改代码并使用base_convert将字符转换为二进制,最终实现了目标。提供的解决方案涉及fopen、fread等函数的使用,并强调了在打开文件时使用'b'模式来处理二进制数据。
摘要由CSDN通过智能技术生成

xxd filename

可以将一个文件的二进制形式显示在终端,无需考虑文件是什么形式的编码。

如何用php实现同样的功能?

1.fopen

2.fread

3.ehco不行,不能显示文本的二进制,显示的是文本,请问,这里如何做?

我写了一段代码

发现不行,显示的是字符本身,不是字符的二进制表达。

预计这个ehco要改,请问,如何修改。

fwrite(STDOUT,$byte); 替换 echo $byte; 也不行。

修改了一下,离成功不远了。

用一个只包含换行键的文件测试

xxd -b ./test.txt

0000000: 00001010

我的程序运行结果是:

10100

回复内容:

xxd filename

可以将一个文件的二进制形式显示在终端,无需考虑文件是什么形式的编码。

如何用php实现同样的功能?

1.fopen

2.fread

3.ehco不行,不能显示文本的二进制,显示的是文本,请问,这里如何做?

我写了一段代码

发现不行,显示的是字符本身,不是字符的二进制表达。

预计这个ehco要改,请问,如何修改。

fwrite(STDOUT,$byte); 替换 echo $byte; 也不行。

修改了一下,离成功不远了。

用一个只包含换行键的文件测试

xxd -b ./test.txt

0000000: 00001010

我的程序运行结果是:

10100

fopen mode参数基本模式后加改为b,如rb,用来区分二进制流和文本文件。

与此对应还可以使用 'b' 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 'b' 或者用 't'作为 mode 参数的最后一个字符

在服务器端进行base64编码,在客户端端进行base64解码

使用PHP输出输入流进行操作

function strToTwo($str)

{

$res = '';

$len = strlen($str);

for($i = 0; $i < $len; $i++) {

$tmp = base_convert(ord($str[$i]), 10, 2);

$res .= $tmp . ' ';

}

return trim($res);

}

var_dump(strToTwo("严"));

UTF8编码下的。这次应该对了。

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值