PHPプログラミング

レシピ

文字列

文字列の一部を取り出す

mb_substr関数を使って、文字列から一部分のみを取り出す方法について解説します。

この記事のポイント

  • 先頭から末尾に向かって指定した文字数だけ文字列を取得する
  • スペースなども1文字として扱う

目次

文字列の一部のみを取り出す

mb_substr関数は、文字列の指定した一から必要な文字数分だけの文字列を取得することができます。

コード例

mb_substr( $str, 0, 5);

上記のコードでは、$strに格納されている文字列から、0文字目から5文字取得します。

コード例

$str1 = "猫はとても可愛いが、時々いたずらをする。";
$str2 = null;

// 文字列を取り出す
$str2 = mb_substr( $str1, 0, 8);

// 出力
var_dump($str2);

出力例

string(24) "猫はとても可愛い"

マルチバイトのためバイト数にすると「24」となりますが、取得した文字列はmb_substr関数で指定した先頭から8文字になっていることが分かります。
同じように、日本語以外の文字列に対しても使用することができます。

コード例

$str1 = "cat is cat. cat play a trick. but so pretty";
$str2 = null;

// 文字列を取り出す
$str2 = mb_substr( $str1, 0, 11);

// 出力
var_dump($str2);

出力例

string(11) "cat is cat."

半角スペースなども1文字として扱う点に注意してください。

末尾から文字列を取り出す

上記のコードは文字列の先頭から指定した文字数だけ文字列を取得してきました。
mb_substr関数は第2パラメータに負の数を指定すると、末尾から指定した長さの文字列を取得することもできます。

コード例

$str1 = "cat is cat. cat play a trick. but so pretty";
$str2 = null;

$str2 = mb_substr( $str1, -6, 6);

var_dump($str2);

出力例

string(6) "pretty"

先頭から末尾に向かって、指定した文字数を取得するという基本的なルールは変わりません。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。