发布时间:2018-10-20 作者:柠檬博客 热度:86

有时候需要对文章进行自动处理nofollow,防止权重流失。


$host为不需要进行处理的站点域名,否则全部自动加上nofollow。


首先正则出a标签和href,然后进行每一层级判断处理。


如果是外链,而且没有nofollow就自动加上。


/**
* 自动处理外链加上rel="nofollow"
*/
function webOutUrlDispose($html)
{
$host = ['www.apizl.com', $_SERVER['HTTP_HOST']];//站点host
$pattern = '/<a href="([^"]*)"[^>]*>.*/';
preg_match_all($pattern, $html, $matches);
for ($i = 0; $i < count($matches[0]); $i++) {
if (!strstr($matches[1][$i], '://')) {
continue;
}
$array = parse_url($matches[1][$i]);
if (in_array($array['host'], $host)) {
continue;
}
if (!strstr($matches[0][$i], 'rel=')) {
$yuan = $matches[0][$i];
$matches[0][$i] = str_replace('<a', '<a rel="nofollow"', $matches[0][$i]);
$html = str_replace($yuan, $matches[0][$i], $html);
}
}
return $html;
}


1.png


dedecms使用的话,需要在/include/extend.func.php下新增如上方法,


模板调用:


{dede:field.body function='webOutUrlDispose(@me)'/}


上下一篇文章: