请教PHP技术这样换过滤为什么不成功?
测试了很多次都不行网上找的
下面这句,可以将a href中的内容替换掉
$txt = preg_replace('/(?<=href=)([^>]*)(?=>)/i','286.net/index.php?url=$1 ,$txt);
比如,按照上面的语句替换,可以将:
<a href="www.286.com" / >落伍< / a>
替换成:
<a href=286.net/index.php?url="www.286.com" / >落伍< / a>
网上说的没错,可没把引号替换掉,还是不对。
引号位置不对无法访问啊。
正确的应该是:
<a href=“286.net/index.php?url=286.net/index.php?url=" / >落伍< / a>
怎样才能把引号替换掉?
网上找的教程都不行,晕菜了
哪位哥们能帮帮忙吗? $txt = preg_replace('/href="([^"]+)"/i','href="286.net/index.php?url=$1"' ,$txt); koko99 发表于 2020-12-23 13:32
谢谢楼上的解答
试了一下,替换后,整个文字代码竟然为空了
不知哪里的缘故
对了,我是用于dede的body字段URL外链替换,替换后内容竟然为空,晕 :ohh::ohh::ohh::ohh::ohh::ohh::ohh:
$txt = preg_replace('/<a\s+href\=[\'|"]([\s\S]*?)[\'|"]/i','286.net/index.php?url=$1 ,$txt);
这样行不行? 用二楼的代码是可以符合你的需求的,但你确定传入$txt的a标签格式必须都是一样的,比如有单引号的或者没有引号的就不行。 这里都是位高权重看透人间网站的老家伙,去技术论坛吧:ohh:
页:
[1]