-2
目前我的功能看起来是这样的。它将纯文本URL转换为HTML链接。
function UrlsToLinks($text){
return preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.-]*(\?\S+)?)?)?)@', '<a href="$1" target="_blank">$1</a>', $text);
}
但也有一些问题。我想要做的是跳过现有的链接,src
属性<img>
标签等。无法弄清楚我需要修改这个功能。
你试图解析的字符串是什么? – 2012-08-14 19:26:39
使用正则表达式实现您的期望功能非常困难,如果不是不可能的话,更不用说单个正则表达式。您确实应该使用HTML解析器,仅在HTML节点的文本内容中查找链接。 – nickb 2012-08-14 19:26:56
你需要做的是使用HTML解析器来提取文本节点,并只通过上述函数运行* them *。试图修改它,以便它会忽略HTML和HTML的部分将会降低托尼小马的愤怒,我们都将在火热的深度燃烧。无论是那个还是你的应用程序都是不安全和不可靠的,其中之一。 – DaveRandom 2012-08-14 19:28:06