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