2017-06-16 4 views
0
$a = pack("v","0xABCD"); 
$b = pack("v",0xABCD); 
$w = "test.bin"; 
$fp = fopen($w,"wb"); 
$v = fwrite($fp,$a.$b); 
$v = fclose($fp); 

ヘックスダンプを見ると、次のように表示されます。00 00 CD AB。 $aの文字列の内容は無視されます。$bが正しく挿入されています。 16進値が文字列として生成されるので、どうすれば修正できますか?16進値を含む文字列をPHPの16進値に変換するにはどうすればよいですか?

$a=pack("h*",strrev("ABCD")); 
$b=pack("v",0xABCD); // Correct 
$w="test.bin";$fp=fopen($w,"wb");$v=fwrite($fp,$a.$b);$v=fclose($fp); 

両方が今それを示す:

+0

https://stackoverflow.com/questions/14674834/php-convert-string-to-hex-and-hex-to-string – webDev

+0

私は誰かが私にそれを紹介するのを恐れていました。それは私の質問の答えではない、これは別の文字ではなく、別の値として内容を扱う。私は本当にここの過去の記事をすべて見ていて、私の問題に関係するものは何もありません。 – Petoetje59

+1

@ Petoetje59もしあなたが本当に前の投稿をすべて見たら、あなたが見たものとあなたの問題にどう対処しなかったのかをあなたの質問で説明してください。あなたが与えた少しの情報から、最初に私が思い浮かべる質問は、「これはパックの仕組みに関する質問であり、そのドキュメンテーションとコミュニティのコメントがすべて読み込まれましたか?」というのは、packはフォーマットのテンポを取りますそして数値データを取得し、 '$ a'を代入するときには書式設定テンプレートと文字列データを渡します –

答えて

0

は、いくつかの調整、あまり使用されるPHPの文字列関数、および代替パック()形式のコードを使用して自分自身を動作するようになりました。

FWIW。

関連する問題