我有一個解析文本表單帖子的函數,如果文章中有鏈接,它會將鏈接重定向到一個頁面,在用戶單擊它之前會向用戶發出有關外部鏈接的警告。需要重寫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