0

このコード:

<?php

$string = "I love chicken.";
$binary = pack("a15", $string);
echo $binary;

?>

「私は鶏肉が好きです」を出力します。それは正常ですか?バイナーっぽい意味不明なものを出力するべきではありませんか?

4

3 に答える 3

4

はい、それは正常です。15 文字の文字列を 15 バイトの NULL パディング文字列にパックしているので、「意味不明」はありません (元の文字列「そのように」メモリに格納されているため)。パック整数など

于 2011-04-28T16:42:59.493 に答える
3

なんで?文字列の「バイナリ」表現 (シングルバイト文字セット) はまさにその文字列であるため、この場合は何も変換する必要はありません。

于 2011-04-28T16:43:18.797 に答える
0

ASCII 文字列を同じ長さの ASCII 文字列としてパックしている場合はそうではありません。a15 を a16 に変更すると、pack は出力を null で埋めます。これは、echo では表示されませんが、var_dump() を実行すると表示されます。

于 2011-04-28T16:45:12.913 に答える