ITに関するメモ的な・・・

ITに関して調べたこと、試してみたことをメモってます

PHPでバイナリデータ作成

実現方法

packという関数にて実現可能。

逆に、unpackという関数でバイナリデータから切り出すことも可能。

ソースコード

検証用に簡単なソースコードを作成。

<?php

print("0              1              \n");
print("0123456789ABCDE0123456789ABCDE\n");
print("------------------------------\n");
print(bin2hex((pack("nN", 1, 2))) . " ← ビッグエンディアン\n");
print(bin2hex((pack("vV", 1, 2))) . " ← リトルエンディアン\n");

実行結果

上記ソースコードの実行結果。

0              1
0123456789ABCDE0123456789ABCDE
------------------------------
000100000002 ← ビッグエンディアン
010002000000 ← リトルエンディアン

他のスクリプト言語でも実現可能か?

PerlRubyもpack/unpack関数あり。

Pythonはstructモジュールで実現可能のようですが、実装による確認は未実施です。

スクリプト言語でバイナリを扱う使う機会は余りなさそうですが、たまたま調査する機会があったため、備忘として投稿しました。

余談

こちらも備忘ですが、ソースコードはてなmarkdownで記載する方法について、この記事の「Markdownシンタックスハイライト」を参考にしました。