xxd filename
은 파일 인코딩을 고려하지 않고 터미널에 파일의 바이너리 형식을 표시할 수 있습니다.
PHP를 사용하여 동일한 기능을 구현하는 방법은 무엇입니까?
1.fopen
2.fread
3.ehco가 작동하지 않습니다. 텍스트의 바이너리를 표시할 수 없습니다. 어떻게 해야 합니까?
코드를 작성했습니다
<code><?php $target="test.txt"; $file_handle = fopen($target, "rb"); while (!feof($file_handle)) { $byte = fread($file_handle,1); echo $byte; } fclose($file_handle ); ?> </code>
작동하지 않는 것을 확인했는데, 표시되는 것은 문자의 이진 표현이 아닌 문자 자체입니다.
이 ehco는 수정이 필요할 것으로 예상됩니다. 수정 방법을 알려주세요.
fwrite(STDOUT,$byte);는 echo $byte;를 대체해도 작동하지 않습니다.
몇 가지 수정을 거치면 성공이 멀지 않습니다.
<code><?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</code>
xxd filename
은 파일 인코딩을 고려하지 않고 터미널에 파일의 바이너리 형식을 표시할 수 있습니다.
PHP를 사용하여 동일한 기능을 구현하는 방법은 무엇입니까?
1.fopen
2.fread
3.ehco가 작동하지 않습니다. 텍스트의 바이너리를 표시할 수 없습니다. 어떻게 해야 합니까?
코드를 작성했습니다
<code><?php $target="test.txt"; $file_handle = fopen($target, "rb"); while (!feof($file_handle)) { $byte = fread($file_handle,1); echo $byte; } fclose($file_handle ); ?> </code>
작동하지 않는 것을 확인했는데, 표시되는 것은 문자의 이진 표현이 아닌 문자 자체입니다.
이 ehco는 수정이 필요할 것으로 예상됩니다. 수정 방법을 알려주세요.
fwrite(STDOUT,$byte);는 echo $byte;를 대체해도 작동하지 않습니다.
몇 가지 수정을 거치면 성공이 멀지 않습니다.
<code><?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</code>
바이너리 스트림과 텍스트 파일을 구별하는 데 사용되는 rb
과 같은 기본 모드 이후 fopen 모드 매개변수가 b로 변경됩니다.
따라서 'b'를 사용하여 데이터가 변환되지 않도록 바이너리 모드를 강제할 수도 있습니다. 이러한 태그를 사용하려면 모드 매개변수의 마지막 문자로 'b' 또는 't'를 사용하세요
서버 측의 Base64 인코딩 및 클라이언트 측의 Base64 디코딩
<code><?php $target="test.txt"; $file_handle = fopen($target, "rb"); while (!feof($file_handle)) { $byte = fread($file_handle,1); fwrite(STDOUT,$byte); } fclose($file_handle ); ?></code>
PHP 출력 및 입력 스트림을 사용하여 작동
<code>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("严"));</code>
UTF8 인코딩. 이번에는 맞아야합니다.