很多泛目录程序都给模板添加了干扰码,以小旋风蜘蛛池为例,只要开了模板干扰,就会自动加一些无意义的div参数。
高端的seo一般都知道模板中的class添加随机字母,进行模板伪原创有利于seo优化和收录。
模板伪原创class添加随机字母作用是:让搜索引擎觉得网站的页面模板代码是独一无二的。
我们建站大多数是用各大cms的开源模板或者是cms里面的应用中心购买模板进行建站,这些模板都是成千上万人在用,对于seo优化各大搜索引擎收录和排名不大好(不是唯一不利于优化因素)。
不难发现市面高收录快速出权重的站,偶尔能看到他们的站点的模板里的class标签是有很多不一样的随机字母。
因为最近有小伙伴有这个需求,我就把代码放出来给大家参考。
function template_class_code_v2($values, $format)
{
global $tp_code_index;
if (is_null($tp_code_index)) {
$tp_code_index = 0;
}
$classValue = '';
if (isset($values[$tp_code_index])) {
$classValue .= $values[$tp_code_index];
} else {
$tp_code_index = 0;
$classValue .= $values[$tp_code_index];
}
if ('unique' != $format) {
$classValue .= '-';
}
if (isset($values[$tp_code_index + 1])) {
$classValue .= $values[$tp_code_index + 1];
} else {
$tp_code_index = 0;
$classValue .= $values[$tp_code_index];
}
if ('unique' != $format) {
$classValue .= '-';
}
if (isset($values[$tp_code_index + 2])) {
$classValue .= $values[$tp_code_index + 2];
} else {
$tp_code_index = 0;
$classValue .= $values[$tp_code_index];
}
if ('unique' != $format) {
$classValue .= '-';
}
if (isset($values[$tp_code_index + 3])) {
$classValue .= $values[$tp_code_index + 3];
} else {
$tp_code_index = 0;
$classValue .= $values[$tp_code_index];
}
$tp_code_index++;
return $classValue;
}
function template_replace($html)
{
# 此判断是是防止 zblogx 未初始化导致的 "字符串通过函数调用"
$mode = 'static';
$format = "unique";
$mode = is_null($mode) ? 'static' : $mode; // 防止更新后默认为动态
$fullUrl = "http://".$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$string = md5($fullUrl) . sha1($fullUrl);
$codeValues = template_text_chunk($string, 2);
if ('static' != $mode) {
shuffle($codeValues); // 非静态重新洗牌
}
# 针对双引号 start-end
preg_match_all('/class=\"(.*?)\"/i', $html, $result);
$class = $result[0];
$html = preg_replace('/class=\".*?\"/', '{FLAG}', $html);
foreach ($class as $item) {
$item = str_replace('"', '', $item); // 保证 空的 class 能补全
$item = str_replace('=', '="', $item);
$item = str_replace('class="', '', $item);
$code = template_class_code_v2($codeValues, $format);
$newClass = 'class="' . $code . ' ' . $item . '"';
$html = preg_replace('/\{FLAG\}/', $newClass, $html, 1);
}
# 针对单引号 start-end
preg_match_all("/class=\'(.*?)\'/i", $html, $result);
$class = $result[0];
$html = preg_replace("/class=\'.*?\'/", '{FLAG}', $html);
foreach ($class as $item) {
$item = str_replace("'", '', $item);
$item = str_replace('=', "='", $item);
$item = str_replace("class='", '', $item);
$code = template_class_code_v2($codeValues, $format);
$newClass = "class='" . $code . ' ' . $item . "'";
$html = preg_replace('/\{FLAG\}/', $newClass, $html, 1);
}
return $html;
}
如果做正规战一般不建议大家添加这种代码,有时间研究这个,不如根据自己的需要修改一下自己的模板就可以了。