請教怎麼轉換成這種形式的資料

來源:互聯網
上載者:User
請問如何轉換成這種形式的資料?
這好像是二進位。php用什麼函數把字串或者數群組轉換成這樣?

分享到:


------解決方案--------------------
pack()
反向是unpack()
------解決方案--------------------
如果只用 pack 就能成,那就怪了
------解決方案--------------------
字串就是二進位的
a 表示在指定的長度中,不足的部分用 null (0x00) 充填
A 表示在指定的長度中,不足的部分用 空格 (0x20) 充填
如果沒有指定長度,也就沒有什麼意義了
$s = 'CSDN(www.csdn.net)';
for($i=0; $i printf('%02x ', ord($s{$i}));
if(($i+1)%16 == 0) echo '
';
}
43 53 44 4e 28 77 77 77 2e 63 73 64 6e 2e 6e 65
74 29
------解決方案--------------------
老徐所寫的定長指的是格式參數所需要的長度,而不是字串(輸入)的長度
例如手冊的例子
Example #1 pack() example
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>
The resulting binary string will be 6 bytes long and contain the byte sequence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.
因為參數n和v是16位,而c則是8位,所以後面幾個參數0x1234按n參數,0x5678按v參數,65按c參數,*號表示後續繼續按c參數,所以66也按c參數輸出
換言之,格式參數中*號就能用於後面不定長的輸入了
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.