ユーザーが製品の説明を入力できるフォームがあり、リストページに製品の説明を簡単に(数行だけ)印刷したいと思います。
しかし、説明にはhtmlタグが含まれています。いくつかの解決策を試しましたが、問題を解決できません。
(例:サブ文字列関数を使用してテキストを短縮したが、閉じられていないタグで問題が発生した場合)
簡単なタグストリッピングを実行し、最後に省略記号を追加して装飾を追加できます。
function shorten($text, $length)
{
$text = trim( strip_tags($text) );
$textLen = strlen($text);
if($textLen < $length)
{
return $text;
}
else
{
$text = substr($text, 0, $length);
$text .= '…';
return $text;
}
}
strip_tags()は絶対確実ではなく、不正な形式のhtmlタグがあるとテキストを台無しにする可能性があることに注意してください。ただし、これは「迅速で汚い」解決策です。それ以外の場合は、適切なツール(たとえば、DOMDocument、またはより優れたパーサー)を使用してHTMLを解析してから、substr()
関数strip_tags($content);
を使用してタグを削除できます...