用php寫出檔案的二進位形式

來源:互聯網
上載者:User
xxd filename
可以將一個檔案的二進位形式顯示在終端,無需考慮檔案是什麼形式的編碼。
如何用php實現同樣的功能?
1.fopen
2.fread
3.ehco不行,不能顯示文本的二進位,顯示的是文本,請問,這裡如何做?

我寫了一段代碼

發現不行,顯示的是字元本身,不是字元的二進位表達。
預計這個ehco要改,請問,如何修改。
fwrite(STDOUT,$byte); 替換 echo $byte; 也不行。

修改了一下,離成功不遠了。

用一個只包含換行鍵的檔案測試xxd  -b ./test.txt0000000: 00001010  我的程式運行結果是:10100

回複內容:

xxd filename
可以將一個檔案的二進位形式顯示在終端,無需考慮檔案是什麼形式的編碼。
如何用php實現同樣的功能?
1.fopen
2.fread
3.ehco不行,不能顯示文本的二進位,顯示的是文本,請問,這裡如何做?

我寫了一段代碼

發現不行,顯示的是字元本身,不是字元的二進位表達。
預計這個ehco要改,請問,如何修改。
fwrite(STDOUT,$byte); 替換 echo $byte; 也不行。

修改了一下,離成功不遠了。

用一個只包含換行鍵的檔案測試xxd  -b ./test.txt0000000: 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編碼下的。這次應該對了。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.