PHP 一番最後の文字を削除する

公開: 2014-11-01 14:32
更新: 2016-04-29 06:02

どうしても最後の1文字だけを削除したい場合がよく出てきます。

例えばこんな文字列

$text = 'apple,banana,melon,lemon,';

最後のカンマがじゃまくさいですね。



「substr」を使う

$text = 'apple,banana,melon,lemon,';
$text = substr($text, 0, -1);
echo $text;

すると実行結果は

apple,banana,melon,lemon

いい感じです。




最後がマルチバイトのとき

半角のカンマ「,」ではなく全角のカンマ「,」が使用されています。

$text = 'apple,banana,melon,lemon,';
$text = substr($text, 0, -1);
echo $text;

最後の文字がマルチバイトのときsubstrを使用してしまうと

PHP 一番最後の文字を削除する

このように文字化けしてしまいます。




マルチバイトが想定されるなら「mb_substr」を使う

$text1 = 'aapple,banana,melon,lemon,';
$text2 = 'apple,banana,melon,lemon,';
$text1 = mb_substr($text1, 0, -1);
$text2 = mb_substr($text2, 0, -1);
echo $text1;
echo $text2;

実行結果は

apple,banana,melon,lemon
apple,banana,melon,lemon

OKです。



心配性な方は常に「mb_substr」を使うのがいいと思います。
ではでは。



この記事をシェア
この記事にコメントする
書き込む
あっきぃ(@appstars_aki)
Web、iOSなフリーランサーです。好きなものはお寿司です。でもお寿司は高いので普段は雑草とか拾ったドングリを食べています。お仕事や意味もなく毎月お小遣いをくれる人を探してます。

お仕事の依頼や自分で作ったアプリのレビューを希望しちゃう方はaki@appstars.jpまでご連絡ください。