0

文字列があると仮定しますpatterns also provide us a common vocabulary to describe solutions

このsubstr()文字列なので、patterns also provide us a common vocabulary to desc

最後の文字列をにカットする方法はpatterns also provide us a common vocabulary to

私のやり方は:

$text = mb_substr($new['text'], 0, 100);

if(mb_substr($text, -1) != ' ') {

    $text_expl = explode(' ', $text);

    $text = implode(' ', array_splice($text_expl, 0, -1)) . ' ...';

}

もっといいものはありますか?

たぶん、通常の式やいくつかのPHP組み込み関数は、同様のことを行うことができますか?

4

2 に答える 2

4

これは最後の空白を見つけ、部分文字列を取ります

$text = mb_substr($new['text'], 0, 100);
$i = mb_strrpos($text, ' ');
if ($i !== false)
    $text = mb_substr($text, 0, $i);
于 2012-12-19T11:50:04.140 に答える
2

私はこれを使用します:

if (preg_match('/^.{1,26}\b/s', $str, $match))
{
    echo $line=$match[0];
}

これにより、必要に応じてテキストが切り捨てられます。また、文字列に実際に存在するよりも多くの文字を指定すると、単に文字列全体が返されます。これも望ましい結果です。

次の方法も同様に機能しますが、文字列内の文字数が指定した数よりも少ない場合、エラーが発生します。

// Needs more than 260 characters in $str
echo substr($str, 0, strpos($str, ' ', 260));

とにかくステートメントでそれをラップする必要があるためif、の長さを確認するに$strは、最初のオプションを選択します。

于 2012-12-19T11:50:51.357 に答える