当用户发表评论时,我会在插入我的数据库之前删除评论中的所有html标签,因为我不希望他们在评论中发布外部链接(SPAM)。但我只想删除外部链接,我想将自己的网站URL显示为普通的可点击链接。如何检测URL是我自己网站的URL并使其像往常一样可点击?
评论中的示例: Blah ......等等......等等...... http://my_website_url.com Blah ......等等......等等...... Blah ......等等......等等......等等......等等......等等...... Blah ......等等......等等...... Blah ......等等......等等...... http://external_links.com Blah ......等等......等等......等等......等等......等等......
如上例所示,我希望在插入我的数据库之前,只有http://my_website_url.com成为可点击链接。 (http://my_website_url.com至&lt; a href =“http://my_website_url.com”&gt; http://my_website_url.com< / a&gt;)
此外,不仅可以检测主URL:http://my_website_url.com,还可以:
-http://www.my_website_url.com
-www.my_website_url.com
-my_website_url.com
-http://my_website_url.com/blah/blah/blah
-http://www.my_website_url.com/blah/blah/blah
-www.my_website_url.com/blah/blah/blah
-my_website_url.com/blah/blah/blah
或来自我网站的任何网址:http://www.my_website_url.com/xxx/xxx/xxx/xxx
如果可以的话,请准确发布php代码,让我复制并粘贴到我的文件中,因为我对php只有很少的了解。多谢你们。 :)
答案 0 :(得分:2)
我为它写了一个函数:
function makeSiteClickable($dom, $website = 'my_website_url.com')
{
$words = explode(' ', $dom);
foreach($words as &$word){
if(strpos($word, $website) == true){
// there you can make some sterilizing
$href = str_replace('http://', '', $word);
$href = str_replace('www.', '', $href);
$word = '<a href="http://'.urlencode($href).'">'.$word.'</a>';
}
}
return implode(' ', $words);
}