本篇文章主要講述了dedecms關鍵字替換方案,根據頻率先替換長尾關鍵字再替換主關鍵字,本篇章具有一定的參考價值,有興趣的朋友可以了解一下。
#如:
長尾關鍵字1:男人喝金絲皇菊有什麼好處?
長尾關鍵字2:喝金絲皇菊有什麼好處?
主關鍵字3:金絲皇菊
使用系統預設的功能時,在替換主關鍵字的時候,會將上面已經替換好的長尾關鍵字中的「金絲皇菊」也替換掉,從而破壞了原有的長尾關鍵字錨文本。
1.先將要替換的關鍵字替換成類似:
關鍵字1:'
#0
##'
關鍵字2:'
##2
##'
關鍵字3:'
3
##'
'
##0##' --> 關鍵字1的錨文本'##1
##' --> 關鍵字2的錨文本
//高亮专用, 替换多次是可能不能达到最多次 function _highlight($string, $words, $result, $pre) { global $cfg_replace_num; // if (version_compare(PHP_VERSION, '5.5.0', '>=')) // { // $string = $string[0]; // $pre = $pre[0]; // } //修改 Start $replaced_array = array(); $replaced_tiems = 0; //修改 End $string = str_replace('\"', '"', $string); if ($cfg_replace_num > 0) { foreach ($words as $key => $word) { if ($GLOBALS['replaced'][$word] == 1) { continue; } //修改 Start $replace_string = '#####' . $replaced_tiems . '#####'; $replaced_array[$replace_string] = $result[$key]; $string = preg_replace("#" . preg_quote($word) . "#", $replace_string, $string, $cfg_replace_num); $replaced_tiems+= 1; //修改 End // $string = preg_replace("#".preg_quote($word)."#", $result[$key], $string, $cfg_replace_num); if (strpos($string, $word) !== FALSE) { $GLOBALS['replaced'][$word] = 1; } } //修改 Start foreach ($replaced_array as $k => $v) { $string = str_ireplace($k, $v, $string); } //修改 End } else { $string = str_replace($words, $result, $string); } return $pre . $string; }###注意:這裡我們需要在後台修改文件關鍵字的頻率,預設是 頻率高的優先替換,頻率低的後替換#######相關教學:###PHP影片教學#########
以上是dedecms關鍵字替換方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!