xxd filename
可以将一个文件的二进制形式显示在终端,无需考虑文件是什么形式的编码。
如何用php实现同样的功能?
1.fopen
2.fread
3.ehco不行,不能显示文本的二进制,显示的是文本,请问,这里如何做?
我写了一段代码
<?php
$target="test.txt";
$file_handle = fopen($target, "rb");
while (!feof($file_handle)) {
$byte = fread($file_handle,1);
echo $byte;
}
fclose($file_handle );
?>
发现不行,显示的是字符本身,不是字符的二进制表达。
预计这个ehco要改,请问,如何修改。
fwrite(STDOUT,$byte); 替换 echo $byte; 也不行。
修改了一下,离成功不远了。
<?php
function parse($target){
$file_handle = fopen($target, "rb");
while (!feof($file_handle)) {
$byte = fread($file_handle,1);
echo base_convert(ord($byte),10,2);
}
fclose($file_handle );
}
parse('test.txt');
?>
用一个只包含换行键的文件测试
xxd -b ./test.txt
0000000: 00001010
我的程序运行结果是:
10100
fopen mode参数基本模式后加改为b,如
rb
,用来区分二进制流和文本文件。在服务器端进行base64编码,在客户端端进行base64解码
使用PHP输出输入流进行操作
UTF8编码下的。这次应该对了。