请帮助我使用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>";
}
}
如果网址采用以下格式发布,则此代码无法使用:网址,网址,网址,网址它只会在最后一个网站上添加后续内容。 请帮忙