php内联修改外链,解决phpcms关键字内联关联链接的最新方法

本文介绍了如何针对PHP CMS(如PHPCMS)中关键字内联关联链接的问题进行自定义修改。作者分享了修改include目录下global.func.php文件的functionkeylinks方法的详细步骤,以实现更完美的内联链接功能。通过去除原有函数并替换为新的正则表达式处理方式,实现了对关键字链接的高效替换。
摘要由CSDN通过智能技术生成

烈火网(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 = '/]+?\>.*?|]+?\>|

$search1 = '/@@!@~@!@(.*?)@!@~@!@@/ise';

$replace = "'@@!@~@!@'.base64_encode('\\0').'@!@~@!@@'";

$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 = ''.$v0.'';

}//veryhuo.com

else

{

$replacement = ''.$v0.'';

}

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值