[PHP] ポケベルコード変換

何となく懐かしい気分で作ってみました。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',

   ),
  );
 }

関連記事

スポンサードリンク

Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です