通常のテキストを自動整形して HTML 文書として出力するには、preg_split() で段落分けをし、
nl2br() で改行タグを付ける方法が簡単です。
2つ以上改行が連続した場合を段落分けと判断し、その他を改行として処理します。
<?php
$str = <<<EOD
段落1
二行目
段落2
二行目
EOD;
echo html_paragraph($str);
function html_paragraph($str, $xhtml=true){
$arr = preg_split("/\R\R+/", $str, -1, PREG_SPLIT_NO_EMPTY);
$result = "";
foreach($arr as $value){
$value = htmlspecialchars($value, ENT_QUOTES);
$result .= '<p>' . nl2br($value, $xhtml) . "</p>\n";
}
return $result;
}
[出力結果]
<p>段落1<br />
二行目</p>
<p>段落2<br />
二行目</p>
「<br /><br />」のように改行タグを連続して使用するよりは
ソースとして綺麗になるのでブログの記事内容を出力する時などに使えると思います。
