国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > DedeCMS > 解决phpcms关键字内联关联链接的最新方法

解决phpcms关键字内联关联链接的最新方法

来源:程序员人生   发布时间:2014-03-16 23:36:39 阅读次数:3462次

  网(LieHuo.Net)PHPCMS教程:之前有好几个朋友发布的“phpcms关键字内联关联链接”的解决方案,都不太好用。但是我用过之后还是感觉不完美,但是phpcms官方也没有解决,哪只能自己硬着头皮自己想办法解决。

  下面就是我修改的代码。

  找到include目录下的global.func.php文件,用软件打开后,搜索function keylinks

  先将function keylinks上面的

function _base64_encode($t,$str)
{
return $t.""".base64_encode($str).""";
}
function _base64_decode($t,$str)
{
return $t.""".base64_decode($str).""";
}

  去除。
  然后将
  function keylinks方法替换为我下面的方法

function keylinks($txt, $replacenum = '')
{
$search = '/<a[^>]+?>.*?</a>|<img[^>]+?>|<script[^>]+?>.*?</script>|<i?frame[^>]+?></i?frame>|<su[bp]>.*?</su[bp]>/ise';
$search1 = '/@@!@~@!@(.*?)@!@~@!@@/ise';
$replace = "'@@!@~@!@'.base64_encode('').'@!@~@!@@'";
$replace1 = "base64_decode('1')";
$txt = preg_replace($search, $replace, $txt);
$linkdatas = cache_read('keylink.php','',1);
if($linkdatas)
{
  foreach($linkdatas as $v)
  {
   $v0 = $v[0];
   $v1 = $v[1];
   $word = '/'.preg_quote($v0, '/').'(?![A-Za-z0-9+]*(?:>|={0,2}@!@~@!@@))/is';
   if($v1)
   {
    $replacement = '<a href="'.$v1.'" target="_blank" class="keylink">'.$v0.'</a>';
   }//liehuo.net
   else
   {
    $replacement = '<a href="'.SITE_URL.'tag.php?tag='.$v0.'" target="_blank" class="keylink">'.$v0.'</a>';
   }
   $txt = preg_replace($word, $replacement, $txt, 1);
   $txt = preg_replace($search, $replace, $txt);
  }
}
$txt = preg_replace($search1, $replace1, $txt);
$txt = str_replace('"', '"', $txt);
return $txt;
}

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生