3

最近のphpコードでこの機能が何度も必要なので、存在する場合は、作業を行う関数を探しています..

文字列が制限よりも大きい場合は切り捨てて、...(continued)..のような省略テキストを入れます。

ruby のように、文字列に対して truncate 関数があります

"And they found that many people were sleeping better.".truncate(25, :omission => "... (continued)")

最初に長さが超えていることを確認することでそれを行うことができます..次にトリム、次に連結...しかし、同様の機能を探しています..

4

4 に答える 4

2
function truncate($string,$length=100,$appendStr="..."){
    $truncated_str = "";
    $useAppendStr = (strlen($string) > intval($length))? true:false;
    $truncated_str = substr($string,0,$length);
    $truncated_str .= ($useAppendStr)? $appendStr:"";
    return $truncated_str;
}

関数を編集して、正確な最大長でカットするか、単語の境界を尊重するかを選択することもできます...
選択は基本的にあなた次第です

于 2012-06-06T12:48:55.827 に答える
1
function substr_with_ellipsis($string, $chars = 100)
{
    preg_match('/^.{0,' . $chars. '}(?:.*?)\b/iu', $string, $matches);
    $new_string = $matches[0];
    return ($new_string === $string) ? $string : $new_string . '…';
}
于 2012-06-06T11:32:04.013 に答える
0
class StringHelper
{

    public static function truncate($string, $length = 100, $append = "...")
    {
        if (strlen($string) <= intval($length)) {
            return $string;
        }

        return substr($string, 0, $length) . $append;
    }

}

Yii フレームワークで使用する切り捨ての静的ユニバーサル メソッド。

于 2014-11-12T13:38:41.597 に答える
-1

@OkekeEmmanuelOluchuの回答に基づいています。少し短くてきれい:

function truncateString($string, $length = 100, $append = "..."){
    $truncated_str = substr($string, 0, $length);
    $truncated_str .= strlen($string) > intval($length) ? $append : "";
    return $truncated_str;
}
于 2015-05-28T21:40:59.013 に答える