【发布时间】:2011-04-28 07:17:51
【问题描述】:
我正在做一个项目,我需要将文本网址替换为从domain.com 到 www.domain.com 到 http(s)://www.domain.com 的任何地方,并将电子邮件地址替换为正确的 html <a> 标记。过去我使用了一个很好的解决方案,但它使用了现在已贬值的eregi_replace 函数。最重要的是,用于此类函数的正则表达式不适用于preg_replace。
所以基本上,用户输入一条消息,其中可能包含/可能不包含链接/电子邮件地址,我需要一个与 preg_replace 一起使用的正则表达式,以使用 HTML 链接(如 @987654328)替换该链接/电子邮件@。
请注意,我还有多个其他 preg_replaces。以下是我目前正在进行的其他替换代码。
$patterns = array('~\[@([^\]]*)\]~','~\[([^\]]*)\]~','~{([^}]*)}~','~_([^_]*)_~','/\s{2}/');
$replacements = array('<b class="reply">@\\1</b>','<b>\\1</b>','<i>\\1</i>','<u>\\1</u>','<br />');
$msg = preg_replace($patterns, $replacements, $msg);
return stripslashes(utf8_encode($msg));
【问题讨论】:
标签: php regex url preg-replace