我们找到并打开/include/arc.archives.class.php文件,在里面找到如下代码:
function ReplaceKeyword($kw,&$body)
{
global $cfg_cmspath;
$maxkey = 5;
$kws = explode(",",trim($kw)); //以分好为间隔符
$i=0;
$karr = $kaarr = $GLOBALS['replaced'] = array();
//暂时屏蔽超链接
$body = preg_replace("#()(.*)(<)(/a>)#isU", '\1-]-\4-[-\6', $body);
$query = "SELECT * FROM #【分隔符】@__keywords WHERe rpurl<>'' ORDER BY rank DESC";
$this->dsql->SetQuery($query);
$this->dsql->Execute();
while($row = $this->dsql->GetArray())
{
$key = trim($row['keyword']);
$key_url=trim($row['rpurl']);
$karr[] = $key;
$kaarr[] = "$key";
}
// 这里可能会有错误
$body = @preg_replace("#(^|>)([^<]+)(?=<|$)#sUe", "_highlight('\2', $karr, $kaarr, '\1')", $body);
//恢复超链接
$body = preg_replace("#()#isU", '\1>\3<\4', $body);
return $body;
}
|
注意查找代码的时候先手动去掉代码里面的【分隔符】字样!
找到后将其替换为如下代码:
function ReplaceKeyword($kw,&$body)
{
global $cfg_cmspath,$dsql;
$maxkey = 5;
$kws = explode(",",trim($kw)); //以分好为间隔符
$i=0;
$karr = $kaarr = $GLOBALS['replaced'] = array();
//暂时屏蔽超链接
$body = preg_replace("/()(.*)(<)(/a>)/isU", '\1-]-\4-[-\6', $body);
$query="SELECT * FROM #【分隔符】@__keywords WHERe rpurl<>'' and sta=1 ORDER BY length(keyword)desc";
$dsql->SetQuery($query);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$key = trim($row['keyword']);
$key_url=trim($row['rpurl']);
$karr[] = $key;
$kaarr[] = "$key";
}
foreach ($karr as $key => $word)
{
$body = preg_replace("/(^|>)([^<]+)(?=<|$)/sUe", "_highlight('\2', $karr[$key], $kaarr[$key],
'\1')", $body);
//echo $body."
|
注意手动去掉代码里面的【分隔符】字样!
替换完成后保存即可,然后生成一下文章内容试试。



