ご意見ください。

例えば掲示板へ書き込まれた本文の内容などの文字列を、

・改行が6回以上含まれているものは、5回目の改行位置までを表示
・改行が5回までのものはそのまま表示
※ここでの改行は"<br />"です。

のようにしたい場合、あれこれ考えて以下のようにしたのですが、もっとスマートな方法があるよ!とかあったら教えてください。

個人的にpreg_match()を2連続叩いているのがなんか気持ち悪いので。

<?php

$vl["body"] = 掲示板に書き込まれた本文の内容;

//改行が6回以上あったら5回目の改行までを表示
if ( preg_match("/(.*?<br \/>){6}/", $vl["body"]) ) { ?>
preg_match("/(.*?<br \/>){5}/", $vl["body"], $match);
echo $match[0] . ".......省略して表示されています。";

//改行が5回までならそのまま表示
} else {
echo $vl["body"];
}

?>

よろしくおながいします。