互联网知识

精准传达 • 价值共享

洞悉互联网前沿资讯,探寻网站营销规律

查看其它板块

织梦DedeCMS关键词自动内链php5.5以上失效问题解决方法

作者:狐灵科技 | 2019-10-04 18:50 |点击:

重庆网站建设小编为您讲解当PHP版本高于5.5时,织梦DedeCMS无法使用关键词內链,下面是此问题的解决方法。

打开 /include/arc.archives.class.php 找到

$body = @preg_replace_callback("#(^|>)([^<]+)(?=<|$)#sU", "_highlight('\\2', \$karr, \$kaarr, '\\1')", $body);

改成


 
global $cfg_replace_num;
 
if($cfg_replace_num > 0)
 
{
 
$query = "SELECT char_length(keyword) AS num,aid,keyword,rpurl,rank FROM dede_keywords WHERE rpurl<>'' ORDER BY num DESC";
 
$this->dsql->SetQuery($query);
 
$this->dsql->Execute();
 
while($row = $this->dsql->GetArray())
 
{
 
$key = trim($row['keyword']);
 
$key_url=trim($row['rpurl']);
 
$body = str_replace_limit($key, "<a href='$key_url' target='_blank'><u>$key</u></a>", $body, $cfg_replace_num);
 
}
 
}
 
else
 
{
 
$query = "SELECT char_length(keyword) AS num,aid,keyword,rpurl,rank FROM dede_keywords WHERE rpurl<>'' ORDER BY num DESC";
 
$this->dsql->SetQuery($query);
 
$this->dsql->Execute();
 
while($row = $this->dsql->GetArray())
 
{
 
$key = trim($row['keyword']);
 
$key_url=trim($row['rpurl']);
 
$body = str_replace($key, "<a href='$key_url' target='_blank'><u>$key</u></a>", $body);
 
}
 
}

继续找到

//高亮专用

在它上面加入


 
//指定替换次数功能
 
function str_replace_limit($search, $replace, $subject, $limit)
 
{
 
if(is_array($search))
 
{
 
foreach($search as $k=>$v)
 
{
 
$search[$k] = '#(?<!>)(?!<)'. preg_quote($search[$k], '#'). '#';
 
}
 
}
 
else
 
{
 
$search = '#(?<!>)(?!<)'. preg_quote($search, '#'). '#';
 
}
 
return preg_replace($search, $replace, $subject, $limit);
 
}

完成

多一份免费策划方案,总有益处。

请直接添加技术总监微信联系咨询

网站设计 品牌营销

多一份参考,总有益处

联系狐灵科技,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:023-68168040 / 大客户专线:15523356218