php成对标签多行匹配,大家正则一般应该怎么写?

mingfish 2010-07-09 10:08:09
成对标签多行匹配,大家正则一般应该怎么写?
#<script[^>]*>.*</script>#isU这样吗?
U模式和.*搞得我一个头两个大


<script type="text/javascript">
............
</script>
<div class="test">
<!-- 内部无div -->
..........
</div>
<script type="text/javascript">
............
</script>
<div class="test">
<!-- 内部无div -->
..........
</div>


...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
amani11 2010-07-09
  • 打赏
  • 举报
回复
先把src="#####",的#####匹配出来

根据本页面的相对目录,或者是绝对网址,file_get_contents,将内容读取了,再分析
jianglin28290 2010-07-09
  • 打赏
  • 举报
回复
比如我匹配到src里的js
这个没有办法匹配里面的内容呀,这个只能匹配页面上已经有的东西
mingfish 2010-07-09
  • 打赏
  • 举报
回复

<script type="text/javascript">
document.write("<div>这里是广告区域</div>");
</script>
<script type="text/javascript">
function hello(){
var a=1;
}
</script>
<script src='http://dcdv1.it.com.cn/adsunion/get/;pl=pl-9-homepage_bp;tp=js;sk=0;ck=0;/?'></script>
<SCRIPT src='http://dcdv1.it.com.cn/adsunion/get/;pl=pl-9-homepage_qp;tp=js;sk=0;ck=0;/?'></SCRIPT>
<script src='http://dcdv1.it.com.cn/adsunion/get/;pl=pl-9-homepage_top;tp=js;sk=0;ck=0;/?'></script>
<div class="test">
"hello";
</div>
<script type="text/javascript" src="good.js"></script>
<!--
怎样匹配出所有js代码?
1.含有src="*.js";(没有.js的多是广告js)
2.内部第一行是document.write的不要 (这类多是广告js)
-->
CunningBoy 2010-07-09
  • 打赏
  • 举报
回复
<?php
$string = <<<CONT
<script type="text/javascript">
............
</script>
<div class="test">
<!-- 内部无div -->
..........
</div>
<script type="text/javascript">
............
</script>
<div class="test">
<!-- 内部无div -->
..........
</div>
CONT;

preg_match_all('#<script[^>]*>.*</script>#isU', $string, $match);
print_r($match);
?>

没有问题啊
床上等您 2010-07-09
  • 打赏
  • 举报
回复
只是匹配 <script 而己

preg_match_all('/<script.*>([\d\D]*)<\/script>/i',$string,$matches);
var_dump($matches);
an9ryfr09 2010-07-09
  • 打赏
  • 举报
回复
你这个成对标签还没有嵌套,还不用使用平衡组来处理。

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧