我有一个解析文本表单帖子的函数,如果文章中有链接,它会将链接重定向到一个页面,在用户单击它之前会向用户发出有关外部链接的警告。需要重写PHP函数的帮助
function url2link($txt) {
$setUrl = preg_replace("/(http:\/\/|(www\.))(([^\s<]{4,68})[^\s<]*)/", '<a href="/link/$2$3" rel="nofollow">$2$4</a>', $txt);
return $setUrl;
}
我需要通过在链接中添加一个域检查来修改此功能。如果链接是从我自己的域名,只需将其转换为可点击的链接是这样的:
$setUrl = preg_replace("/(http:\/\/|(www\.))(([^\s<]{4,68})[^\s<]*)/", '<a href="http://$2$3" rel="nofollow" target="_blank">$2$4</a>', $txt);
,但如果它是一个链接到外部域 - 做一个链接指向一个警告页面(例如顶部)。
我有点卡在这里,因为我不知道如何添加此检查。在帖子中可能会有多个链接,其中一些可能有本地链接,一些外部链接以及一些混合链接。
请说明 - 此文本是从一个内嵌文本(如textarea)的大块可能会遇到多个URL?或者是有专门的网址表单字段,也许逗号分隔或等? – DeaconDesperado 2010-12-13 20:29:46
它来自db。 – santa 2010-12-13 20:49:07