[PHP-users 29941] Re: 独自タグ入力画面での段落の取り方
水沼寛喜
mizunuma @ m-design.com
2006年 8月 3日 (木) 17:12:12 JST
こんちには 水沼です。
//--------------------------------------------------------------------------
-----------------------
//文字装飾関数
//-----------------------------------
function gui_palette($str){
## ボールド文字 ##
$str = mb_ereg_replace("((<){3})(.*?)((>){3})", "<b>\\3</b>", $str);
## イタリック文字 ##
$str = mb_ereg_replace("((<){2})(.*?)((>){2})", "<i>\\3</i>", $str);
## アンダーライン ##
$str = mb_ereg_replace("((\[){3})(.*?)((\]){3})", "<u>\\3</u>", $str);
## 文字大きく ##
$str = mb_ereg_replace("((\[){2})(.*?)((\]){2})", "<font
size=4>\\3</font>", $str);
## リンク ##
$str = mb_ereg_replace("(\[)(https?):(.*?):(.*?)(\])", "<a
href=\"\\2:\\3\" target=\"_blank\">\\4</a>", $str);
## 文字カラー ##
$str = mb_ereg_replace("((\{){3})(.*?)((\}){3})", "<font
color=\"#FF0000\">\\3</font>", $str);
return $str;
}
前に、作った関数ですが参考になれば どうぞ・・・・
> -----Original Message-----
> From: php-users-bounces @ php.gr.jp
> [mailto:php-users-bounces @ php.gr.jp] On Behalf Of atsushi kojo
> Sent: Thursday, August 03, 2006 4:50 PM
> To: php-users @ php.gr.jp
> Subject: [PHP-users 29940]独自タグ入力画面での段落の取り方
>
>
> 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 mailing list PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
PHP-users メーリングリストの案内