- ベストアンサー
文字列を大文字の2桁ごとのコンマ付き16進数に変換する方法
文字列を大文字の2桁ごとのコンマ付き16進数に変換する方法がわかりません。ただ単に文字列を16進数に変更するだけならbin2hex()でできますけど、誰か知っている方はいませんか?具体的には、変換された文字列が1a2b3c4d5e6fなら、1A.2B.3C.4D.5E.6Fと変換したいんです。どうすればいいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
<?php $b16 = strtoupper(bin2hex("agagagagaga")); $new_b16 = ''; for($i=0;$i<strlen($b16)-2; $i+=2){ $new_b16 .= $b16[$i].$b16[$i+1].","; } $new_b16 .= $b16[$i].$b16[$i+1]; ?> こんな感じでしょうか。 まず、bin2hexで16進数にしてやって、strtoupperで小文字を大文字に変換します。 PHPでは文字列を変数に追加すると、変数に添え字をつけると1バイトずつ取り出すことが出来るので、for文でまわしてやって、2回に一回カンマをつければよいかと思います。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
いっぱつでなくていいならこんなかんじで <? $str="1a2b3c4d5e6f"; $str=preg_replace("/../e","strtoupper('$0').'.'",$str); $str=chop($str,"."); print $str; ?>
質問者
お礼
ありがとうございます。参考になりました。
お礼
ありがとうございます。","を"."にすることにより解決しました。