Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅用HTML链接替换文本中自己的网站url_Php - Fatal编程技术网

Php 仅用HTML链接替换文本中自己的网站url

Php 仅用HTML链接替换文本中自己的网站url,php,Php,当用户发布评论时,我会在插入数据库之前去掉评论中的所有html标记,因为我不希望他们在评论中发布外部链接(垃圾邮件)。但我只想剥离外部链接,我想显示我自己的网站URL作为正常的可点击链接。如何检测URL是我自己网站的URL,并使其像往常一样可点击 评论中的示例: 废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。http://external_links.com 废话

当用户发布评论时,我会在插入数据库之前去掉评论中的所有html标记,因为我不希望他们在评论中发布外部链接(垃圾邮件)。但我只想剥离外部链接,我想显示我自己的网站URL作为正常的可点击链接。如何检测URL是我自己网站的URL,并使其像往常一样可点击

评论中的示例: 废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。废话。。。http://external_links.com 废话。。。废话。。。废话。。。废话。。。废话。。。废话

正如上面的例子,在插入数据库之前,我只想成为可点击的链接。(http://my_website_url.com 到http://my_website_url.com

此外,不仅要检测主URL:http://my_website_url.com,但同时:

-http://www.my_website_url.com

-www.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

-我的网站_url.com/blah/blah/blah

或我的网站上的任何URL:http://www.my_website_url.com/xxx/xxx/xxx/xxx


如果可以的话,请准确地发布php代码,让我复制并粘贴到我的文件中,因为我只对php知之甚少。谢谢大家。:)

我为它编写了一个函数:

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);
}
函数makeSiteClickable($dom,$website='my\u website\u url.com')
{
$words=explode(“”,$dom);
foreach($words as&$word){
if(strpos($word,$website)==true){
//在那里你可以做一些消毒
$href=str_replace('http://',''.$word);
$href=str_replace('www.,'',$href);
$word='';
}
}
返回内爆(“”,$words);
}

谢谢seferov,但是如果单词后面有逗号或换行符,则代码无效。示例:这是一个测试:my_website_url.com,诸如此类。。。正如上面的例子,它将回显:my_website\u url.com,或者如果my_website\u url.com之后有换行符,它将回显:
this”>my_website\u url.com

this
。我只给出代码的基本结构。您可以将这些字符添加到数组中,并相应地分解整个文件