コードを試しています。ファイルに16進数データを書き込む
<?php
$tmp = ord('F'); //gives the decimal value of character F (equals 70)
$tmp = $tmp - 55; //gives 15 - decimal equivalent of 0x0F
$tmp = dechex($tmp); // converts 15 to 0x0F
$fp = fopen("testing.data","wb+");
fwrite($fp,$tmp);
fclose($fp);
?>
私はバイナリエディタでtesting.dataと呼ばれるファイルを開くと、私は2つのバイトが書かれて参照してください。 2バイトは0x36と0x33です。 私は、0x0fという1バイトしかファイルに書き込まれないと予想しています。これは起こりません。 これで私を助けてください。
+1 'chr'が容易になり、ここで仕事をしていません。 'pack'はもっと汎用性があり、指定されたバイトオーダフォーマット(リトルエンディアン、ビッグエンディアンなど)でマルチバイト値の変換が可能です。 – knittl
ありがとう! :-)私は正反対のことを試みていた。 – user1051505