当前位置:Gxlcms > PHP教程 > 【紧急求救】正则或类、PHP替换非本站域名

【紧急求救】正则或类、PHP替换非本站域名

时间:2021-07-01 10:21:17 帮助过:6人阅读

一个论坛程序,将用户帖子中的链接(*非本站的域名下的链接)全部替换成指定连接


例如源 代码:


-------------------------------------------------
AAAAABBBBBCCCCCDDDDDEEEEEFFFFFGGGGG


-----------------------------------------------------------
替换成

-----------------------------

AAAAABBBBBCCCCCDDDDDEEEEEFFFFFGGGGG


------------------------


需求:将非AAA.com域名下的链接全部替换成“#”井号

以下代码可以替换所有链接为井号,但是不能分辨是否为AAA.COM
echo preg_replace("/(?<=href=)([^\>]*)(?=\>)/i","javascript:;", "你好,点这里看看你好,点这里看看");

求正则大神帮忙哈 很着急 一上午没弄出来


回复讨论(解决方案)

$str = << 

替换成这样滴 谢谢哈

AAAAABBBBCCCCCDDDDDEEEEEFFFFFGGGGG

echo preg_replace_callback("/([^<]+)<\/a>/is",function($r) { return strip_tags($r[0]); },$str);

感谢microlab2009
但是在应用中我测试了一下发现几个问题


1:将非本站链接替换成井号,但是非链接也给替换了哦!
例如:和www.163.com(字符串非链接)全部都给替换成#井号了

2:删除链接
BBBBB

BBBBB
处理上出现错误,能修改第一个不能修改第二个。

望大神帮帮忙哈,无限的感谢已涌向心口........

1. $str = << AAAAA
BBBBB
CCCCC
DDDDD
EEEEE
FFFFF
GGGGG
http://234r.231.com
str;

echo preg_replace_callback("/ (?<=href\=\")http\:\/\/[^.]*[^A]+\.com\//is",function($r) { return str_replace($r[0], "#", $r[0]); },$str);
?>

2.echo preg_replace_callback("/]*>([^<]+)<\/a>/is",function($r) { return strip_tags($r[0]); },$str);
都只是改改正则就可以了 还是得自己去先把正则熟悉熟悉

感谢大神的帮助 万分感谢哈~~~

人气教程排行