已掉线,重新登录

首页 > 绿虎论坛 > 杂类 > 超级灌水 (发帖)

标题: 关于一段正则匹配。。

作者: @Ta

时间: 2013-05-01

点击: 1920


已用file_get_contents获取到内容
我想让<div class="xxx">xxx</div>之类的全部消失
xxx代表任何字符

但是我这段输出就变空白了。
神马原因?
$body=preg_replace('!<div(.*)</div>!isuU','',$body);

[隐藏样式|查看源码]


『回复列表(18|隐藏机器人聊天)』

1. @Curtion,首页的图片格式转换器,转换格式时可以修改图片大小。
(/@Ta/2013-02-22 21:22//)

2. 你这个正则匹配了全部
(/@Ta/2013-05-01 18:35//)

3. 我一般用ism修饰……贪婪用?控制……
(/@Ta/2013-05-01 18:36//)

4. @Curtion,我没有去探究,猜测:<div>是可以嵌套的,<div><div>你好</div></div>你好你好<div>你好你好你好</div>,这样会怎样?
(/@Ta/2013-05-01 18:36//)

5. 你少了m,如果碰到多行文本就不行了
(/@Ta/2013-05-01 18:37//)

6. @夏夜-低调,已经使用了模式修饰符U
(/@Ta/2013-05-01 18:37//)

7. 我以前也碰到这样情况,我加入m就行了。贪婪控制一向用?号。不过……有时候会有?>,代码编辑器就不高亮了,:-D
(/@Ta/2013-05-01 18:39//)

8. m (PCRE_MULTILINE)
默认情况下,PCRE 认为目标字符串是由单行字符组成的(然而实际上它可能会包含多行), "行首"元字符 (^) 仅匹配字符串的开始位置, 而"行末"元字符 ($) 仅匹配字符串末尾, 或者最后的换行符(除非设置了 D 修饰符)。这个行为和 perl 相同。 当这个修饰符设置之后,“行首”和“行末”就会匹配目标字符串中任意换行符之前或之后,另外, 还分别匹配目标字符串的最开始和最末尾位置。这等同于 perl 的 /m 修饰符。如果目标字符串 中没有 "\n" 字符,或者模式中没有出现 ^ 或 $,设置这个修饰符不产生任何影响。
(/@Ta/2013-05-01 18:41//)

9. 嵌套问题,用递归吧,好在PHP 正则支持递归。好像R……啥的,看手册,百度,谷歌:-D
(/@Ta/2013-05-01 18:41//)

10. 我以前也碰到这样情况,我加入m就行了。贪婪控制一向用?号。不过……有时候会有?>,代码编辑器就不高亮了,:-D
(/@Ta/2013-05-01 18:45//)

11. @老虎会游泳 ……我不敢后退了……后退就重复提交数据……
(/@Ta/2013-05-01 18:46//)

12. @Curtion,虎绿林首页只有一个div,正常去除。
(/@Ta/2013-05-01 18:46//)

13. @Curtion 楼主真好学。。。
(/@Ta/2013-05-01 18:47//)

14. 还有,你用了貌似
(/@Ta/2013-05-01 18:47//)

15. 还有,你用了模式修饰符u,就必须是utf-编码的,不能是gbk编码的网页。
(/@Ta/2013-05-01 18:48//)

16. @老虎会游泳 @   经过你们的提醒,已找到问题所在,是网页编码问题   谢了
(/@Ta/2013-05-01 18:52//)

17. 我都是把网页抓了,转换编码后再匹配的
(/@Ta/2013-05-01 18:57//)

18. 哦!!!
(/@Ta/2013-05-01 19:12//)

回复需要登录

8月13日 19:02 星期三

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1