0 レビュー
1 回答
laravel-文字数制限でPHPカット文字列
Faker Factoryを使用してデモデータを生成するブログを作成しています。ランダムに生成されたHTMLを含む本文フィールドとによって作成されたテキストフィールドを持つ生成された投稿モデルがあります。本体からタグをstrong>削除し、受信するデータを512文字に制限します。 str_limit は正常に機能しますが、512 limit を維持しながら、単語の textを切り取る必要があります。
これは私の工場です:
<?php
use Faker\Generator as Faker;
$factory->define(Provar\Forum\Post::class, function (Faker $faker) {
$randomHTML = Purifier::clean($faker->randomHtml(2,3));
$trimedHTML = strip_tags($randomHTML);
return [
'body' => $randomHTML,
'text' => str_limit($trimedHTML, 509, '...')
];
});
どんな助けでも大歓迎です。 <3
わからない
0
レビュー
答え :
解決策:
このような方法で試すこともできますが、これで最後の言葉が途切れる可能性があります
substr($trimedHTML, 0, 512) . '...'
最後の単語を切り取りたくない場合は、次のようにしますが、常に正確に512文字になるとは限らないため、次の単語が大きくなる可能性があります...
$text=$trimedHTML;
if (preg_match('/^.{1,512}\b/s', $trimedHTML, $match))
{
$text=$match[0] . ( strlen($match[0]) < strlen($trimedHTML) ? "..." : "" );
}
そして、 str_limit($trimedHTML, 509, '...')
このコードは、文字通りこの回答のコードと同じです。 PHPのsubstrが文字ではなく単語で終了することを確認する これは「別の質問」と見なされるかもしれませんが...
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。