phpで後ろからn文字を抽出する(日本語対応)

インターネット関連技術

備忘録です。

(お約束)ご利用は自己責任でお願いします

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");

 

コメント

タイトルとURLをコピーしました