PHPで文字列を指定の長さ以上であればトリムする方法


方法1: mb_strlenとmb_substrを使用する方法

function trimString($string, $maxLength) {
    if (mb_strlen($string) > $maxLength) {
        $trimmedString = mb_substr($string, 0, $maxLength);
        return $trimmedString;
    }
    return $string;
}
// 使用例
$originalString = "長すぎる文字列の例";
$trimmedString = trimString($originalString, 10);
echo $trimmedString; // 出力: "長すぎる文字列"

この方法では、mb_strlen関数を使用して文字列の長さを取得し、mb_substr関数を使用して指定の長さまでの部分文字列を取得します。

方法2: mb_strimwidthを使用する方法

function trimString($string, $maxLength) {
    if (mb_strlen($string) > $maxLength) {
        $trimmedString = mb_strimwidth($string, 0, $maxLength, '...');
        return $trimmedString;
    }
    return $string;
}
// 使用例
$originalString = "長すぎる文字列の例";
$trimmedString = trimString($originalString, 10);
echo $trimmedString; // 出力: "長すぎる..."

この方法では、mb_strimwidth関数を使用して文字列を指定の長さまでトリムし、必要に応じて末尾に省略記号(ここでは「...」)を追加します。

方法3: 正規表現を使用する方法

function trimString($string, $maxLength) {
    if (mb_strlen($string) > $maxLength) {
        $trimmedString = preg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $maxLength + 1));
        return $trimmedString;
    }
    return $string;
}
// 使用例
$originalString = "長すぎる文字列の例";
$trimmedString = trimString($originalString, 10);
echo $trimmedString; // 出力: "長すぎる文字列"

この方法では、正規表現を使用して指定の長さまでの部分文字列を取得し、末尾の単語や空白をトリムします。

これらの方法を使って、指定の長さ以上の文字列をトリムすることができます。適切な方法を選択し、自分の要件に合わせてコードを調整してください。また、mb_ 関数はマルチバイト文字列を正しく扱うために使用されます。