1
我正在从事一个项目,我需要从domain.com
到www.domain.com
到http(s)://www.domain.com
和电子邮件地址到正确的html <a>
标记替换文本网址。我过去使用的是一个很好的解决方案,但它使用了现在贬值的eregi_replace
函数。最重要的是,用于此功能的正则表达式不适用于preg_replace
。PHP的正则表达式文本链接到HTML链接
所以基本上,用户输入的可能/可能不包含链接/电子邮件地址的消息,我需要一个正则表达式与preg_replace
工程,以替代该路段/电子邮件与像<a href="link">link</a>
一个HTML链接。
请注意,我也有其他多个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));
优秀的男人!你知道你在做什么!我很感谢你对这个的帮助。 – 2010-10-24 18:55:54
快速注释 - 关闭后添加分号)进行$ replace。 – 2011-05-23 14:15:20
@Lucanos这很棒,但url一个,不支持括号。 – Vallentin 2014-07-30 20:05:30