大家好我有一個問題 我有一個文本的Preg替換文本鏈接與域濾波
$text = " some and text http://www.somelink2.com/html5.jpg and some text http://www.somelink.net/test/testjava/html5.html#fbid=QTb-X6fv5p1 some http://www.somelink4.org test and http://www.somelink3.org/link.html text and some text ";
我需要改造所有文本鏈接HTTP/S exept域somelink3.org,somelink2.com他們必須純文本
像這樣的事情,但與域過濾器,而不是extention圖片:
function livelinked ($text){
preg_match_all("#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)|^(jpg)^#ie", $text, $ccs);
foreach ($ccs[3] as $cc) {
if (strpos($cc,"jpg")==false && strpos($cc,"gif")==false && strpos($cc,"png")==false) {
$old[] = "http://".$cc;
$new[] = '<a href="http://'.$cc.'" target="_blank">'.$cc.'</a>';
}
}
return str_replace($old,$new,$text);
}
編輯:幫我:
$text = preg_replace("~((?:http|https|ftp)://(?!site.com|site2.com|site3.com)(?:\S*?\.\S*?))(?=\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)~i",'<a href="$1" target="_blank">$1</a>',$text);
非常感謝,iv gor a succes,我有一些問題:爲什麼它不好使用preg match?當我發佈2個鏈接時得到了一個'www.domain.com/test-ajax-upload.html「target =」_ blank「> www.domain.com/test-ajax-upload.html www.domain.com/test- ajax-upload.html「target =」_ blank「> www.domain.com/test-ajax-upload.html' – devcline
(1)因爲它很笨拙。 (2)因爲你也匹配'\ s'空格字符。 – mario