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

php中文网
发布: 2016-06-23 13:58:50
原创
1128人浏览过

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


例如源 代码:


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

<a href="http://www.AAA.com/" target="_blank">AAAAA</a><a href="http://wer.123.com/" target="_blank">BBBBB</a><a href="http://adf.h4.456.com/" target="_blank">CCCCC</a><a href="http://wer.AAA.com/" target="_blank">DDDDD</a><a href="http://asdgwre.wer.222.789.com/" target="_blank">EEEEE</a><a href="http://fadsf.543.com/" target="_blank">FFFFF</a><a href="http://234r.231.com/" target="_blank">GGGGG</a>
登录后复制


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

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

<a href="http://www.AAA.com/" target="_blank">AAAAA</a><a href="#" target="_blank">BBBBB</a><a href="#" target="_blank">CCCCC</a><a href="http://wer.AAA.com/" target="_blank">DDDDD</a><a href="#" target="_blank">EEEEE</a><a href="#" target="_blank">FFFFF</a><a href="#" target="_blank">GGGGG</a>
登录后复制


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


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

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

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

站酷梦笔
站酷梦笔

国内知名设计社区站酷推出的AI插画生成工具

站酷梦笔 44
查看详情 站酷梦笔

回复讨论(解决方案)

$str = <<<str<a href="http://www.AAA.com/" target="_blank">AAAAA</a><a href="http://wer.123.com/" target="_blank">BBBBB</a><a href="http://adf.h4.456.com/" target="_blank">CCCCC</a><a href="http://www.wer.AAA.com/" target="_blank">DDDDD</a><a href="http://asdgwre.wer.222.789.com/" target="_blank">EEEEE</a><a href="http://fadsf.543.com/" target="_blank">FFFFF</a><a href="http://234r.231.com/" target="_blank">GGGGG</a>str;echo preg_replace_callback("/http\:\/\/[^.]*[^A]+\.com\//is",function($r) { return str_replace($r[0], "#", $r[0]); },$str);
登录后复制

替换成这样滴  谢谢哈

<a href="http://www.AAA.com/" target="_blank">AAAAA</a>BBBBCCCCC<a href="http://wer.AAA.com/" target="_blank">DDDDD</a>EEEEEFFFFFGGGGG
登录后复制

echo preg_replace_callback("/<a href=\"http\:\/\/[^.]*[^A]+\.com\/\" target=\"_blank\">([^<]+)<\/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("/ (? ?>

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

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


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号