2009-07-30 82 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);