[PHP]テキストに自動で段落分け<p>、改行<br />タグをつける(文字列のHTML化)

Facebook にシェア
Delicious にシェア
LINEで送る
Pocket

通常のテキストを自動整形して 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 />」のように改行タグを連続して使用するよりは
ソースとして綺麗になるのでブログの記事内容を出力する時などに使えると思います。


Similar Posts:




  • This entry was posted in PHP and tagged . Bookmark the permalink.

    コメントを残す

    メールアドレスが公開されることはありません。