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

前端之家收集整理的这篇文章主要介绍了解决phpcms关键字内联关联链接的最新方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

  下面就是我修改代码

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

  先将function keylinks上面的

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

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

@H_403_10@
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,$txt);
  }
}
$txt = preg_replace($search1,$replace1,$txt);
$txt = str_replace('"','"',$txt);
return $txt;
}

猜你在找的Dedecms相关文章