ナム山

家最高 今年一年でサックスが吹けるようになるか観測中

Worpdress・PHPで文字抽出する(記事詳細の文字列の丸め)

PHPで文字数省略(文字列の丸め)したい時に使うmb_sbstr

mb_substr(
    string $string,
    int $start,
    ?int $length = null,
    ?string $encoding = null
): string

抜き出すのにWordpressの関数を使わずいつも
>|php|echo mb_sbstr($test, 0 10, 'UTF-8');||
とかで使ってる。
mb_sbstr自体はドキュメント見るとsbstrのマルチバイト(mb)対応で処理を行えるもので、これに'…'とかを繋げて文字数両略とか普段対応している。
今回規定文字数以下のケースが目立つため、ちゃんと規定文字量以上だった時にだけ三点リーダー出るようにしてほしいとのことでmb-strimwidthを仕様することにした。
sbstr自体は本来文字列を返すのが仕事のため、ちゃんとトリム機能がついているこちらを使うのがまあ正しいよねと勉強になった。
php7以降とかなら負のスタートもいけるので便利。

参考
https://www.php.net/manual/ja/function.substr.php
https://www.php.net/manual/ja/function.mb-substr.php
https://www.php.net/manual/ja/function.mb-strimwidth.php