仅将rel =“nofollow”添加到外发链接

时间:2013-12-04 12:58:49

标签: php nofollow

请帮助我使用MYBB论坛,我想将rel =“nofollow”添加到所有外发链接,但不是内部链接。

此代码有效,但广告不支持所有链接如何检查链接是否为内部链接,如果不添加nofollow

function nofollowlink_changelink($message){

        $search = '<a';
        $replace = '<a rel="nofollow"';
     $message = str_replace($search  , $replace  , $message);
     return $message;
        }

我想这段代码不要将nofollow添加到 $ mybb-&gt; settings ['bburl']

此外,您还可以使用更多代码。

function nofollowexternal_changelink($message) {
    global $mybb;
    $message = preg_replace_callback("/<a href=\"(.+)\" (.+)>(.+)<\\/a>/",  "replace_external", $message);
    return $message;
}
function replace_external($groups) {
    global $mybb;
    $url = str_replace(array(".", "/"), array("\\.", "\\/"), $mybb->settings['bburl']);
    $urls = preg_replace("/^http/","https", $url, 1);
    if (preg_match("/$url/", $groups[1]) || preg_match("/$urls/", $groups[1])) {
        return $groups[0];
    }
    else {
        return "<a href=\"".$groups[1]."\" target=\"_blank\" rel=\"nofollow\">".$groups[3]."</a>";
    }
}

如果网址采用以下格式发布,则此代码无法使用:网址,网址,网址,网址它只会在最后一个网站上添加后续内容。 请帮忙

0 个答案:

没有答案