PHPで文字列とASCIIを相互変換するサンプルコード
PHPコード:
//文字列->ASSCII
function Binary2String($pIn){
$str = ";
$iOut=0;
for($i = 0 ;$i<strlen($pIn);$i++){
$str .= Value2Ascii((ord($pIn[$i])&0xF0)>>4);
$str .= Value2Ascii(ord($pIn[$i])&0x0F);
}
return $str;
}
function Value2Ascii($in){
switch($in){
case 0:
return '0’;
break;
case 1:
return '1’;
break;
case 2:
return '2’;
break;
case 3:
return '3’;
break;
case 4:
return '4’;
break;
case 5:
return '5’;
break;
case 6:
return '6’;
break;
case 7:
return '7’;
break;
case 8:
return '8’;
break;
case 9:
return '9’;
break;
case 10:
return 'A’;
break;
case 11:
return 'B’;
break;
case 12:
return 'C’;
break;
case 13:
return 'D’;
break;
case 14:
return 'E’;
break;
case 15:
return 'F’;
break;
default:
return '?’;
break;
}
return '?’;
}
//asscii->文字列
function DBStr2Binary($pIn){
$iOut = 0;
$pOut = ";
for( $i = 0 ;$i<strlen($pIn)-1;){
if($pIn[$i]==’\0’|| $pIn[$i+1]==’\0′){
break;
}
$pOut .= chr((Ascii2Value($pIn[$i])<<4) + (Ascii2Value($pIn[$i+1]))); $iOut++;
$i+=2;
}
return $pOut;
}
function Ascii2Value($in){
switch($in){
case '0’:
return 0;
break;
case '1’:
return 1;
break;
case '2’:
return 2;
break;
case '3’:
return 3;
break;
case '4’:
return 4;
break;
case '5’:
return 5;
break;
case '6’:
return 6;
break;
case '7’:
return 7;
break;
case '8’:
return 8;
break;
case '9’:
return 9;
break;
case 'A’:
return 10;
break;
case 'B’:
return 11;
break;
case 'C’:
return 12;
break;
case 'D’:
return 13;
break;
case 'E’:
return 14;
break;
case 'F’:
return 15;
break;
default:
return '?’;
break;
}
return '?’;
}
$str = '確定申告 子供の進学、夫の退職’;
$bin = Binary2String($str);
echo $bin.'<br />’;
$new_str = DBStr2Binary($bin);
echo $new_str;