PHPには標準関数が用意されているらしい。が、URLをそのまま突っ込むと全部がエンコードされてしまう。美しくないコードを書いたので載せておく。たぶん、もっとスマートで美しいやり方があるのだろう。
スポンサードリンク
function _urlencode($str){
$chars = preg_split('/\//', $str);
$i = 0;
$res = null;
foreach ($chars as $char){
if($i>1){
if(strlen($char) != mb_strlen($char)){
$char = urlencode($char);
}
}
$res[$i] = $char;
$i++;
}
$res = join('/', $res);
return $res;
}

コメント