電子書籍の厳選無料作品が豊富!

文字列を大文字の2桁ごとのコンマ付き16進数に変換する方法がわかりません。ただ単に文字列を16進数に変更するだけならbin2hex()でできますけど、誰か知っている方はいませんか?具体的には、変換された文字列が1a2b3c4d5e6fなら、1A.2B.3C.4D.5E.6Fと変換したいんです。どうすればいいですか?

A 回答 (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回に一回カンマをつければよいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。","を"."にすることにより解決しました。

お礼日時:2009/09/09 13:47

いっぱつでなくていいならこんなかんじで



<?
$str="1a2b3c4d5e6f";
$str=preg_replace("/../e","strtoupper('$0').'.'",$str);
$str=chop($str,".");
print $str;
?>
    • good
    • 0
この回答へのお礼

ありがとうございます。参考になりました。

お礼日時:2009/09/09 13:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!