2013-10-08 17 views
5

ダブルアスタリスクとアスタリスクの間のイタリック体である(かなりstackoverflow上のエディタのような)の間にテキストを太字にするPHP関数を作りたかったのです。アスタリスク間のテキストを太字にする

*と単語の間にスペースがある場合、同じルールが適用されます。レンダリングしないでください。

誰が私を助けることができますか? 私はしようとしましたが、奇妙なアスタリスク "< b>"と偶数 "</b>"をどうやって作るのか分かりません。

(私はstackoverflowのは太字の間のテキストをレンダリングします、スペースを入れずにそれらを入力することはできません.....)

$thenewtext = str_replace("**", "<b>", "**Hello World** of PHP"); 
+1

正規表現はこの単純な例ではrkです。しかしパーサーを選ぶことを検討してください。 HTMLでの正規表現の使用[いくつかの人々に飲み込ませることができる](http://stackoverflow.com/a/1732454/13895) – John

+0

@ John:OPはプレーンテキストを* HTMLに変換しているようですが、HTMLを解析しないので、正規表現はうまくいくはずです。 – FtDRbwLXw6

答えて

9

簡単な正規表現は、トリックを行いますはい太字ない大胆

大胆ではない:

$txt = 'not bold [BeginBold]Yes Bold[EndBold] not bold again'; 

$newtxt = str_replace("[BeginBold]", "<b>", $txt); 
$newtxt = str_replace("[EndBold]", "</b>", $txt); 
echo $newtxt; 

これが生成します:あなたのアイデアの

私の適応はこのようなものになるだろう:

$thenewtext = preg_replace('#\*{2}(.*?)\*{2}#', '<b>$1</b>', '**Hello World** of PHP'); 
0

私はそれに慣れていないですが、あなたがしようとしています正規表現が必要です。私は最近、jQuery UIのオートコンプリートを補完するサーバ側のテキストハイライトシステムを実装しました。再び

関連する問題