xxd filename
kann die binäre Form einer Datei auf dem Terminal anzeigen, ohne die Codierung der Datei zu berücksichtigen.
Wie erreicht man dieselbe Funktion mit PHP?
1.fopen
2.fread
3.ehco funktioniert nicht. Die Binärdatei des Textes kann nicht angezeigt werden.
Ich habe einen Code geschrieben
<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>
Es wurde festgestellt, dass es nicht funktioniert. Es wird das Zeichen selbst angezeigt, nicht der binäre Ausdruck des Zeichens.
Es wird erwartet, dass dieser ehco geändert werden muss. Bitte sagen Sie mir, wie ich ihn ändern kann.
fwrite(STDOUT,$byte); funktioniert nicht, selbst wenn Sie echo $byte; ersetzen.
Nach einigen Modifikationen sind wir nicht mehr weit vom Erfolg entfernt.
<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
kann die binäre Form einer Datei auf dem Terminal anzeigen, ohne die Codierung der Datei zu berücksichtigen.
Wie erreicht man dieselbe Funktion mit PHP?
1.fopen
2.fread
3.ehco funktioniert nicht. Die Binärdatei des Textes kann nicht angezeigt werden.
Ich habe einen Code geschrieben
<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>
Es wurde festgestellt, dass es nicht funktioniert. Es wird das Zeichen selbst angezeigt, nicht der binäre Ausdruck des Zeichens.
Es wird erwartet, dass dieser ehco geändert werden muss. Bitte sagen Sie mir, wie ich ihn ändern kann.
fwrite(STDOUT,$byte); funktioniert nicht, selbst wenn Sie echo $byte; ersetzen.
Nach einigen Modifikationen sind wir nicht mehr weit vom Erfolg entfernt.
<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>
Der Parameter fopen mode wird nach dem Basismodus in b geändert, z. B. rb
, der zur Unterscheidung von Binärstreams und Textdateien verwendet wird.
Entsprechend können Sie mit „b“ auch den Binärmodus erzwingen, sodass die Daten nicht konvertiert werden. Um diese Tags zu verwenden, verwenden Sie entweder „b“ oder „t“ als letztes Zeichen des Modusparameters
Base64-Kodierung auf der Serverseite und Base64-Dekodierung auf der Clientseite
<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>
Verwenden Sie PHP-Ausgabe- und Eingabestreams für den Betrieb
<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-Kodierung. Diesmal sollte es stimmen.