通常のテキストを自動整形して 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:
- [PHP]ヒアドキュメント内で関数を使う
- [PHP]料金表のようなものをテキストだけで表現する
- [PHP]10進数を任意の文字を使って62進数などのn進数に相互変換する(基数変換)
- [PHP]FTPでアップロードやダウンロード等のファイル操作を行う
- [PHP]逆ポーランド記法への変換と計算
- [PHP]トランプのブラックジャックを作る
- [PHP]ひらがな・カタカナをローマ字に変換する
- [PHP]htmlspecialchars()を使うと文字が消える?