PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのmb_strcut()関数とは?バイト単位で文字列を切り出す方法を解説

PHPのmb_strcut()関数は、指定した文字列の一部を取得するために使用されるマルチバイト対応の関数です。与えられた文字列から部分文字列を抽出しますが、大きな特徴として文字数ではなくバイト数を基準に処理を行う点が挙げられます。

切り出し位置がマルチバイト文字(日本語など)の2バイト間にまたがる場合、その文字の先頭バイトから切り出しが行われるため、文字化けを防ぎつつ安全に文字列を分割できます。

mb_strcut()の構文

string mb_strcut(
   $str_string,
   $int_start,
   $int_length = null,
   $str_encoding = null
);

具体的な呼び出し例は以下の通りです。

mb_strcut(
   string = "Onlinetutorial",
   int = 6,
   length = 5,
   encoding = "UTF-8"
);

パラメータ

mb_strcut()関数は、以下の4つの引数を受け取ります。

  • str_string:切り出し対象となる元の文字列を指定します。

  • int_start:切り出しを開始するバイト位置を指定します。正の値の場合は、文字列の先頭(0番目)から数えた位置が開始地点となります。たとえば「onlinetutorial」という文字列では、位置「0」は「o」、位置「1」は「n」に該当します。

  • startに負の値を指定した場合は、文字列の末尾から逆算してカウントされます。負の値の絶対値が文字列全体の長さより大きい場合は、文字列の先頭から切り出しが始まります。

  • int_length:切り出す長さをバイト数で指定します。この引数を省略するかNULLを渡した場合、文字列の末尾まですべてのバイトが抽出されます。負の値を指定した場合は、文字列の末尾から指定バイト数分戻った位置が終了地点となります。

  • encoding:文字エンコーディングを指定するパラメータです。省略またはNULLを指定した場合は、内部エンコーディングの設定値が使用されます。

戻り値

mb_strcut()は、startおよびlengthパラメータで指定された範囲の文字列の一部を返します。

使用例

以下は、UTF-8エンコーディングで文字列「Onlinetutorial」の6バイト目から5バイト分を切り出すサンプルコードです。

<?php
   // UTF-8エンコーディングを指定
   // 文字列 "Onlinetutorial" の6バイト目から5バイト分を切り出す
   $string = mb_strcut("Onlinetutorial", 6, 5, "UTF-8");
   $str = mb_strtoupper($string);

   // 出力結果:"TUTOR"
   print_r($str);
?>

実行結果

TUTOR

このようにmb_strcut()を使うことで、マルチバイト文字を含む文字列でもバイト境界を考慮した安全な切り出しが可能になります。特に日本語などのマルチバイト文字列を扱う際には、mb_substr()との違い(バイト単位か文字単位か)を理解して適切に使い分けることが重要です。

  1. PHPのquoted_printable_encode()関数の使い方を徹底解説

    PHPのquoted_printable_encode()関数は、8ビット文字列をquoted-printable形式の文字列に変換するための組み込み関数です。quoted-printableはMIME(Multipurpose Internet Mail Extensions)で定義されているエンコード方式の一つで、主に電子メールで非ASCII文字(日本語など)を安全に送信する際に利用されます。構文quoted_printable_encode(str)パラメータstr − 変換対象となる8ビット文字列を指定します。この引数は必須です。戻り値quoted_printable_encode()

  2. PHPのquoted_printable_decode()関数とは?使い方とサンプルコードを解説

    PHPのquoted_printable_decode()関数は、quoted-printable形式でエンコードされた文字列を、8ビット文字列にデコードするために使用されます。メール本文などで使われるquoted-printableエンコーディングを元に戻したい場合に便利な関数です。 構文 quoted_printable_decode(str) パラメータ str − デコード対象となる入力文字列を指定します。 戻り値 quoted_printable_decode()関数は、デコード後の8ビットASCII文字列を返します。 使用例 以下は、quoted_printable_dec