備忘録です。
(お約束)ご利用は自己責任でお願いします
mb_substrで文字の抽出(日本語対応)ができるのですが、「名古屋グランパス」や「ドラガン・ストイコビッチ」という何文字あるか分からない文字列の最後からn文字を抽出する方法です。
3文字抽出するなら以下のように書きます。UTF-8はその文字コードです。
$str = mb_substr($str, -3 , 3 , "UTF-8");
つまり n文字抽出したいなら、
$str = mb_substr($str, -n , n , "UTF-8");
です。
注意する点としては 引数2に文字列よりも大きな数を指定した場合はfalseが返るので、その辺を完璧にしたいときは、文字列の長さを取得できるmb_strlenを使ってがんばってみてください。
こんな感じでしょうか。
/* 後ろから6文字取得したいのだが、文字数5未満のときは全部を取得する */ if(mb_strlen($str)<5){//5未満なら $num = mb_strlen($str);//長さを代入 }else{ $num = 6; } $str = mb_substr($str, -$num , $num , "UTF-8");
コメント