substr()関数の使い方が5分でマスターできるサンプルコード〜PHP編

   

文字列の○文字目からスタートして、○文字を取り出す。っていうsubstr()関数やmb_substr()関数。慣れるまでちょっとややこしいんですよね。

以下にコピペして使える練習帳を作ってみたので、ぜひお使いください。

「第3引数にこの値が入った時はこうで・・」とか読んで覚えようとするより、実際に第2引数第3引数にいろんな値を入れて挙動を確認したほうが早く使いこなせるようになります。

いちおう、第2引数・第3引数にそれぞれマイナスの値を指定した場合だけ解説します。

  • 第2引数・・後ろから数えます。サンプルコード8行目
  • 第3引数・・同じくサンプル8行目で数えた値。数値の文字手前までを取り出します

ちなみに:mb_substr()関数でエラーが出たら

2バイト文字を扱うときのmb_substr()関数について

PHP Warning: mb_substr() expects parameter 3 to be integer, string given in

っていうエラーが吐かれたら。

エラーメッセージの内容としては「第3引数はinteger=数値型にして欲しいんだけど・・」という意味です。

このエラーが出る時って、こんな感じになってるはずです。

echo mb_substr( $str, 2, ‘utf-8’);

文字化け対策でutf-8といったふうにエンコーディングを指定するわけですが、このエンコーディングは第4引数に置かなくちゃいけないんですね。第3引数はあくまで、取り出す文字数を指定するための場所です。だからintegerにしろとエラーが出たわけです。

そのため「いや、文字数は指定せず全部取り出したいんだけど」っていうときも、最後の文字番を第3引数に指定してあげる必要があります。

おしまい!!

 - エンジニアへの道