2019年9月4日水曜日

文字列の一部分を返すsubstr、mb_strimwidth

こんばんは、こうちゃんです。

文字列操作の関数の内、
指定文字列の一部を切り取るのに便利な関数、substrです。

利用法は、
公式
https://www.php.net/manual/ja/function.substr.php
より

substr ( string $string , int $start [, int $length ] ) : string
文字列 string の、start で指定された位置から length バイト分の文字列を返します。

string
入力文字列。最低 1 文字以上を指定しなければなりません。

start
start が正の場合、返される文字列は、 string の 0 から数えて start番目から始まる文字列となります。 例えば、文字列'abcdef'において位置 0にある文字は、'a'であり、 位置2には'c'があります。

start が負の場合、返される文字列は、 stringの後ろから数えて start番目から始まる文字列となります。

string の長さが start 文字より短い場合は FALSE が返されます。


例:
<?php
$rest = substr("abcdef", -1);    // "f" を返す
$rest = substr("abcdef", -2);    // "ef" を返す
$rest = substr("abcdef", -3, 1); // "d" を返す

$rest = substr("abcdef", 0, -1);  // "abcde" を返す
$rest = substr("abcdef", 2, -1);  // "cde" を返す
$rest = substr("abcdef", 4, -4);  // false を返す
$rest = substr("abcdef", -3, -1); // "de" を返す
?>


また、似たような関数で、
文字操作系の関数でとても重宝される、
文字列を希望の長さに丸められる便利な関数です。

mb_strimwidth

対象文字列を指定バイト数で切って、末尾に指定文字をつなぎ、丸める関数です。


使い方

string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker [, string $encoding ]] )

str
丸めたい文字列。

start
開始位置のオフセット。文字列の始めからの文字数 (最初の文字は 0) です。

width
丸める幅。

trimmarker
丸めた後にその文字列の最後に追加される文字列。

encoding
encoding パラメータには文字エンコーディングを指定します。省略した場合は、内部文字エンコーディングを使用します。


返り値
丸められた文字列を返します。 trimmarker が設定された場合、 trimmarker が丸められた文字列に追加されます。


例:
echo mb_strimwidth("Hello World", 0, 10, "...";
// Hello W... と出力します

サイトなどで長い文章を取得、表示する際や、
ブログの記事一覧で概要を表示させる時などに大変便利です。

ぜひご活用ください。

こうちゃん

0 件のコメント:

コメントを投稿