[PHP] 文字列の前後から指定した数の文字を削除する
スポンサーリンク
PHPで文字列の前後から指定した数の文字を削除する方法のメモ。
2バイト文字が混じっていない場合はsubstr()
とstrlen()
を使う。全角を含む場合はmb_substr()
とmb_strlen()
を使う。
文字列の最後から1文字をカットしたい場合。
$str = "abcdefghijklmnopqrstuvwxyz";//文字列 $cut = 1;//カットしたい文字数 $replace = substr( $str , 0 , strlen($str)-$cut ); echo $replace;//abcdefghijklmnopqrstuvwxy
文字列の始まりの1文字をカットしたい場合。
$str = "abcdefghijklmnopqrstuvwxyz";//文字列 $cut = 1;//カットしたい文字数 $replace = substr( $str , $cut , strlen($str)-$cut ); echo $replace;//bcdefghijklmnopqrstuvwxyz
substr( $string , $start , $length )
は第1引数に与えた文字列から、第2引数で指定した位置から第3引数で指定した長さの文字列を返す。strlen( $string )
は与えられた文字列の長さを返す。
なので、substr()
にstrlen()
を与え、カットしたい文字数を文字長から引く。
substr()
とstrlen()
は2バイト文字に対応していないので、全角が混じっている場合はmb_substr()
とmb_strlen()
を使う。
基本的な使い方は同じ。
$str = "あめんぼあかいなあいうえお";//文字列 $cut = 1;//カットしたい文字数 $replace = mb_substr( $str , 0 , mb_strlen($str)-$cut ); echo $replace;//あめんぼあかいなあいうえ
mb_substr()
とmb_strlen()
は文字エンコーディングをそれぞれ第4引数、第2引数に取る。指定していない場合は内部文字エンコーディングに従う。文字化けの問題が生じた場合は文字エンコーディングを指定する。
文字エンコーディングを指定する場合のコードは以下。
$str = "あめんぼあかいなあいうえお";//文字列 $cut = 1;//カットしたい文字数 $replace = mb_substr( $str , 0 , mb_strlen($str,'utf-8')-$cut , 'utf-8' ); echo $replace;//あめんぼあかいなあいうえ
スポンサーリンク