?基于discuz在線分詞批量優化Dedecms文章關鍵詞
dedecms本身自帶tag(keywords)提取功能(北京網站制作),但分詞總是不夠精確。當然,對于日更新十數篇且對seo精確執行的用戶來說,手工輸入能更好的控制(高端網站建設)。但對于主題比較寬泛、內容更新量大的用戶來說,dede split是不大完美的。
discuz在線分詞是一個在線免費的提詞接口。后有數十萬中文論壇、supsite用戶,對于語境、細胞詞庫的完善有更多的數據。 這個小程序是基于discuz在線分詞批量更新已發內容的keywords(tag),如果數據量大(大于5萬)的或者虛擬主機用戶的話,最好環境搭到本地。速度會快一點。
使用方法,cms安裝目錄,新建c.php,拷入以下內容,自己對應編碼用notepad設置相應gbk或utf8。運行 yourwebsite/c.php?id=1
$id = isset($id) && is_numeric($id) ? $id : 0;
for ($a=$id; $a<$id+10; $a++){
?$row = $dsql->GetOne(” SELECT arc.title,tp.body FROM `@__archives` arc LEFT JOIN `@__addonarticle` tp ON arc.id=tp.aid where arc.id=’$a’ “);?if(is_array($row))?{??$title = $row['title'];??$body = $row['body'];??$keywords=zhgetkey($title.$body);??$dsql->ExecuteNoneQuery(” Update `@__archives` set keywords=’$keywords’ where id=’$a’ “);??echo $a.’:’.$keywords.’
’;?}}??if ($a>80000){break;}
echo “<script>”;echo “setTimeout(”location.replace(‘c.php?id=$a’)”,0)”;echo “script>”;
function zhgetkey($contents){$rows = strip_tags($contents);$arr = array(‘ ‘,’ ‘,”s”, “rn”, “n”, “r”, “t”, “>”, ““”, “””,”
”);$qc_rows = str_replace($arr, ”, $rows);if(strlen($qc_rows)>2400){$qc_rows = substr($qc_rows, ’0′, ’2400′);}$data = @implode(”, file(“http://keyword.discuz.com/related_kw.html?title=$qc_rows&ics=gbk&ocs=gbk”));preg_match_all(“/
function cutstr_html($string, $sublen)???
?{
? $string = strip_tags($string);
? $string = preg_replace (‘/n/is’, ”, $string);
? $string = preg_replace (‘/ | /is’, ”, $string);
? $string = preg_replace (‘/ /is’, ”, $string);
??? preg_match_all(“/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/”, $string, $t_string);??
? if(count($t_string[0]) – 0 > $sublen) $string = join(”, array_slice($t_string[0], 0, $sublen)).”…”;??
? else $string = join(”, array_slice($t_string[0], 0, $sublen));
??? return $string;
?}
?>