DedeCMS用編輯器編輯文章的時(shí)候,需要統(tǒng)計(jì)文章的功能。如果文章字?jǐn)?shù)過(guò)少,容易被判斷為低質(zhì)量頁(yè)面。建議各位寫(xiě)文章字?jǐn)?shù)不低于500個(gè)中文字符,或1000個(gè)英文字符。絕大多數(shù)網(wǎng)站如本SEO博客都是中英文字符混合,所以需要單獨(dú)計(jì)算中文和英文。
蜘蛛抓取的是中文、英文、梳子字符,對(duì)HTML代碼是過(guò)濾的。
↑用站長(zhǎng)工具的模擬蜘蛛抓取功能
實(shí)現(xiàn)方法其實(shí)比較簡(jiǎn)單,稍微懂點(diǎn)PHP都能看得懂。先看看下面這個(gè)例子:
PHP統(tǒng)計(jì)字符
<?php //字節(jié)統(tǒng)計(jì)函數(shù) function countWords($str){ echo (mb_strlen($str, 'utf8') + strlen($str))/2; } //使用方法: $strdemo1='秀站網(wǎng)博客'; $strdemo2='http://www.vi86.com'; $strdemo3='秀站網(wǎng)博客http://www.vi86.com'; countWords($strdemo1); echo "<br/>"; countWords($strdemo2); echo "<br/>"; countWords($strdemo3); ?>
運(yùn)行結(jié)果:
8 //8個(gè)字節(jié),也就是4個(gè)中文,每個(gè)中文占用兩個(gè)字節(jié) 19 //19個(gè)字節(jié),19個(gè)英文字符 27 //包括19個(gè)英文和4個(gè)中文
這里注意到,模板里面會(huì)有許多HTML標(biāo)簽,這些標(biāo)簽會(huì)占用字符,但百度是不抓取HTML的。
PHP去除HTML
<?php $str='<a href="http://www.vi586.com/">秀站網(wǎng)博客</a>'; $str=strip_tags($str); echo $str; ?>
運(yùn)行結(jié)果:
秀站網(wǎng)博客
看完這個(gè)例子,這樣就明白應(yīng)該怎么統(tǒng)計(jì)了。
DedeCMS統(tǒng)計(jì)文章字符功能
打開(kāi)/include/extend.func.php,在最后面增加代碼如下
//字符數(shù)統(tǒng)計(jì)-by秀站網(wǎng) function countWords($str){ $str=strip_tags($str); $str=str_replace(' ','',$str);//過(guò)濾空格 $str=(mb_strlen($str, 'utf8') + strlen($str))/2; return $str; }
一般統(tǒng)計(jì)的是文章body里面的文字,在對(duì)應(yīng)的模板添加如下代碼
<p>共{dede:field name='body' function='countWords(@me)'/}個(gè)字節(jié)</p>