Schreiben Sie die Binärform der Datei mit PHP

WBOY
Freigeben: 2016-08-18 09:16:08
Original
1344 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

Antwortinhalt:

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

UTF8-Kodierung. Diesmal sollte es stimmen.

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!