[PHP-users 29940] 独自タグ入力画面での段落の取り方

atsushi kojo a-kojo @ artsnet.jp
2006年 8月 3日 (木) 16:49:52 JST


textarea内に独自のタグで入力して正規表現を通して
HTMLで表示するというのもを作っています。

独自タグ:[b]強調文字[/b]
       ↓
変換コード:$str = preg_replace( 
"/\[b\](.+?)\[\/b\]/s","<strong>$1</strong>", $str);
       ↓
HTML:<strong>強調文字</strong>

このノリで文中の改行から改行までを<p>(段落)で
囲って<br />ではない妥当な構造にしようと思い

\n段落\n
  ↓
変換コード:$str = preg_replace( "/\\n(.+?)\\n/s","<p>$1</p>", $str);
  ↓
<p>段落</p>

としてみたところ、ある程度望みの表示にはなるのですが
文頭に改行を入れないと段落がずれたり
文の最後に改行を入れないと妙な<p>が入ったりします。
それぐらいなら入力フィルターなど設けて対処できますが
そもそもユーザーがこちらの意図通り入力してくれるわけもない・・・
根本的に間違ってるのかなと思いました。

このようなことを処理する場合の一般的な方法として
どういう方法がとられるのでしょうか?
または同じようなことしてるソースをご存知でしたら
教えていただきたいです。よろしくお願いします。




PHP-users メーリングリストの案内