バイナリTweetこんにちは、久保田です。引き続き、PHPでのバイナリプログラミングについて話をしていきます。前回の記事ではバイト列をPHPで扱えるデータに変換する方法を説明しました。今回はPHPの数値をバイト列に変換する方法を説明しますが、その前に前回説明したバイナリの定義を少し思い出してみましょう。<blockquote>バイナリとは、ざっくりと言えばテキスト以外のバイト列のことです。</blockquote>と前回言いましたが、そもそもテキストとはなんでしょうか?バイナリとはテキスト以外のものであると言ってもまずテキストがなんなのかわからなければ意味がありません。この記事では、PHPの数値をバイト列に変換する方法と共に、テキストとは具体的にはなんなのかを説明していきます。テキストとはテキストとは、文字エンコーディング方式に沿ったバイト列の事です。以下のコードを見てください。PHP_EOL;pack関数は前回の記事に説明したunpack関数と逆のことをやってくれる関数です。具体的にはPHPの数値をバイト列に変換してくれます。0x21)をバイト列に変換してそれを出力しています。コマンドラインでこれを実行すると以下のようになります。sample.phpPHP!「PHP!」と表示されています。この例からバイト列はそれぞれ以下のように対応していることがわかると思います。!「PHP!」以外の文字でも、どのバイト表現にどの文字を割り当てるかどうかは当然ながら定義されています。この対応を定義しているのが文字エンコーディング方式です。ASCII文字コードのコード表を見てみましょう。ASCIIで表現される文字集合は小さいので、簡単にどういう対応を持っているかを把握することができます。英語のアルファベットがどのバイト表現に対応しているかが一目瞭然です。上述した例では文字エンコーディングに従って手動で数値からバイト列を生成し出力しました。その結果、普段誰もがよく目にしているテキストが表示されました。テキストとは文字エンコーディング方式に沿ったバイト列である、というのはそういうことです。普段よく使われている文字コードは、Shift_JISやUTF-8やEUC-JPなどASCIIとは違ったものですが、アルファベットや数字、一バイトの記号などのエンコーディングはどれもASCII文字コードに従っています。これは利用者や開発者などにとって都合がいいからで、例えばシステムの文字コードがなんであれ英語のアルファベットなどが日本語と違って文字化けしたりしないのはこれのためです。文字エンコーディング方式は、バイト表現と文字の対応であるでは、次回は実際にバイナリファイルを読み込む例を紹介したいと思います。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。