機動戦士ガンダム ⇒ 機動戦士ガンダダ
いろいろなサイト
などを参考にしてみたものの、なかなかうまくいかない・・・
ということで、PHP base64をURLSafeにする方法を参考に、URLの文字列をbase64形式で変換してみました。
尚、base64形式に変換した文字列には、「/」「+」「=」が浮くまれるため、URLにそのまま組み込むとおかしくなる。
そこで、上記3文字については違う文字に変換することで対応した。
【表示側contoroller】
① あらかじめ以下の関数をコントローラーに仕込む
function base64_encode_safe($s){ $s = base64_encode($s); return(str_replace(array('+','=','/'),array('_','-','.'),$s)); } function base64_decode_safe($s){ $s = (str_replace( array('_','-','.'), array('+','=','/'), $s)); return(base64_decode($s)); }
② 変換したい文字列を上記関数を通して変換
$data['name']=$name; //ここに日本語 ↓ $data['name']=$this->base64_encode_safe($name);
③ エンコードされたリンクを受け取る側
$work=$name; ↓ $work=base64_decode_safe($name);
薫のHackさん、ありがとうございました!