2009-07-30 76 views
0

我試圖通過使其看起來更好,感覺更像電子郵件來改善我的現場個人消息系統。我現在在每一行回覆的文本前添加>,但我還想將字體顏色等格式添加到以「>」開頭並且沒有引號的行中。我不確定我如何用正則表達式關閉線條。打開它,我認爲我應該做下面的事情?正則表達式來格式化文本的某些行

$new_text = preg_replace("\> \is", "<font color=\"grey\">> ", $text); 
+0

您能否給我們更多的信息?例如,您正在使用什麼語言來運行PM系統? – 2009-07-30 23:00:40

回答

0
preg_replace("/^(>.*)$/im", "<span style=\"color: red;\">\\1</span>", $reply); 
+0

This works,but had one small error,fixed below: preg_replace(「/^(>.*)$/ im」,「 「,$ reply); – 2009-07-30 23:08:35

0
ereg_replace('^>(.*)', '<span class="quoted">&gt;\\1</span>', $content); 
0
preg_replace('/(\n>[^\n]*)+/','<span class="reply">$1</span>', $message); 

類似的東西會附上的東西,你可以風格了引用回覆。

0

除了已發佈的好答案之外,您可能希望在將其捕獲的文本視爲HTML之前將其轉義。通過簡單的替換,引用文本中的某些字符(特別是'<','>'和'&')將使您生成的HTML無效。 (我假設它是不是已經逃脫,不然你就需要匹配「>」,而不是「>」。)

爲了確保更換產量有效的HTML,你可以做這樣的事情:

function quote_markup($matches) { 
    $quote = htmlspecialchars($matches[1]); 
    return "<span style=\"color: red;\">$quote</span>", 
} 

preg_replace_callback("/^(>.*)$/im", 'quote_markup', $reply);