• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    织梦关键词自动内链、php5.5以上失效问题解决方法
    POST TIME:2021-05-23 00:43
    • 后台-系统-核心设置-关键字替换  【是】
    • 后台-系统-其他选项-关键词替换次数  【1】或者【0】

    关键词长短优先级问题

    比如有“长词”、“我是大长词”、“我是小长词”,同时在一篇文章中出现,程序会优先使用短的词。

    长短优先级问题和PHP5.5以上问题的解决方法

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

    $query = "SELECT * FROM keywords WHERE rpurl<>'' ORDER BY rank DESC";

    改成

    $query = "SELECT char_length(keyword) AS num,aid,keyword,rpurl,rank FROM keywords WHERE rpurl<>'' ORDER BY num DESC";

    继续找到

    "#".preg_quote($word)."#"

    改成

    "#".preg_quote($word, "#")."(?!<)#"

    继续找到

    $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 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 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);
    }

    完成,最终效果

    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!