何となく懐かしい気分で作ってみました。CakePHP 上で動作テストしました。
Ex. 2503524261→こんにちは
スポンサードリンク
// pb code to string by pc.casey.jp, GPL
function pbcode_to_string(){
// init
if(empty($this->data['Code'])) return;
// test data
// $keys = '364936';
$keys = $this->data['Code'];
$matrix= 'default'; // for ext.
// code load
$codes = $this->_getPbCodes();
// check
$error = null;
if(strlen($keys) % 2 != 0) $error = 'OffsetError';
if(!ereg('^([0-9])+$', $keys)) $error = 'StringError';
if(!array_key_exists($matrix, $codes)) $error = 'MatrixError';
// error report and process stop
if($error){
$this->set('error', $error);
return;
}
// to strings
$ret = null;
for($i=0; $i<strlen($keys); $i++){
$key = substr($keys, $i, 2); // $str, start, length
$ret .= $codes[$matrix][$key];
$i++;
}
// output
//debug($ret);
$this->set('result', $ret);
}
function _getPbCodes(){
return $codes = array(
'default' => array(
11=>'あ', 12=>'い', 13=>'う', 14=>'え', 15=>'お',
21=>'か', 22=>'き', 23=>'く', 24=>'け', 25=>'こ',
31=>'さ', 32=>'し', 33=>'す', 34=>'せ', 35=>'そ',
41=>'た', 42=>'ち', 43=>'つ', 44=>'て', 45=>'と',
51=>'な', 52=>'に', 53=>'ぬ', 54=>'ね', 55=>'の',
61=>'は', 62=>'ひ', 63=>'ふ', 64=>'へ', 65=>'ほ',
71=>'ま', 72=>'み', 73=>'む', 74=>'め', 75=>'も',
81=>'や', 82=>'(', 83=>'ゆ', 84=>')', 85=>'よ',
91=>'ら', 92=>'り', 93=>'る', 94=>'れ', 95=>'ろ',
'01'=>'わ', '02'=>'を', '03'=>'ん', '04'=>'゛', '05'=>'゜',
16=>'A', 17=>'B', 18=>'C', 19=>'D', 10=>'E',
26=>'F', 27=>'G', 28=>'H', 29=>'I', 20=>'J',
36=>'K', 37=>'L', 38=>'M', 39=>'N', 30=>'O',
46=>'P', 47=>'Q', 48=>'R', 49=>'S', 40=>'T',
56=>'U', 57=>'V', 58=>'W', 59=>'X', 50=>'Y',
66=>'Z', 67=>'?', 68=>'!', 69=>'-', 60=>'/',
76=>'¥', 77=>'&', 78=>'[CLOCK]', 79=>'[TEL]', 70=>'[CUP]',
86=>'*', 87=>'#', 88=>' ', 89=>'[HEART]', 80=>' ',
96=>'1', 97=>'2', 98=>'3', 99=>'4', 90=>'5',
'06'=>'6', '07'=>'7', '08'=>'8', '09'=>'9', '00'=>'0',
),
);
}

コメント