[PHP-users 27445] 正規表現について
水沼寛喜
mizunuma @ m-design.com
2005年 11月 10日 (木) 16:34:38 JST
お世話になっております。水沼と言います。
先日、正規表現について質問致しましたが、
なかなか想定している様に動作しないため、
再度ご教授の程、よろしくお願いいたします。
やりたいことは、掲示板のテキストエリアに
独自タグを入力して、投稿した場合に
HTMLタグに変換してデータを登録したいのです。
独自タグのフォーマットは現在以下の様な形を
想定しています。
・ボールド(<3つと>3つに囲まれている文字のみ変換)
<<<あいうえお>>>
↓
<b>あいうえお</b>
・イタリック(<2つと>2つに囲まれている文字のみ変換)
<<あいうえお>>
↓
<i>あいうえお</i>
・アンダーライン([3つと]3つに囲まれている文字のみ変換)
[[[あいうえお]]]
↓
<u>あいうえお</u>
・文字サイズ変更([2つと]2つに囲まれている文字のみ変換)
[[あいうえお]]
↓
<font size="4">あいうえお</font>
・URLアドレス
[http://www.yahoo.co.jp:あいうえお]
↓
<a href="http://www.yahoo.co.jp" target="_blank">あいうえお</a>
です。
HTMLの文字コードは、utf-8を使用しております。
現在、自分で作成した正規表現の方法は以下の通りです。
<?
function($str){
//ボールド
$str = mb_ereg_replace("((<){3})((^[\w])*)((>){3})", "<b>\\3</b>",
$str);
//イタリック
$str = mb_ereg_replace("((<){2})((^[\w])*)((>){2})", "<b>\\3</b>",
$str);
//アンダーライン
$str = mb_ereg_replace("((\[){3})((^[\w])*)((\]){3})", "<u>\\3</u>",
$str);
//文字サイズ
$str = mb_ereg_replace("((\[){2})((^[\w])*)((\]){2})", "<font
size='4'>\\3</font>", $str);
//URLアドレス
?>
よろしくお願い致します。
PHP-users メーリングリストの案内