使用preg_replace替换html里面的问题

orcd 2010-07-14 07:32:44
$old = '
<script>utmx_section("relatedOuterDivStyleCSS")</script>
<style>.relatedStyle {width: 300px; float: right; padding-left: 15px; margin-bottom:10px; margin-left:10px; padding-top:10px; border-top:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;}</style>
</noscript>
<script>utmx_section("relatedContentStyleCSS")</script>
<style>.relatedContent {padding-bottom: 15px; color:#336666}</style>
</noscript>
<script>utmx_section("relatedHeadingStyleCSS")</script>
<style>.relatedHeading{padding-bottom: 15px}</style>
</noscript>
<script>utmx_section("relatedTitleStyleCSS")</script>
<style>.relatedTitle{}</style>
</noscript>
<div class="relatedStyle">
<script>utmx_section("relatedHeading")</script>
<H3 class="relatedHeading">Also on Suite101 </H3>
</noscript>

内容

<div style="margin-bottom:10px; padding-top:10px; border-top:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;">
<div id="adsense_placeholder_2"></div>
<script language="javascript">
document.getElementById('adsense_placeholder_2').innerHTML = document.getElementById('adsense_ad_2_hidden').innerHTML;
</script>
</div>

';

想取出里面的内容 应该怎么操作啊?请高手帮忙啊!

...全文
204 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
战斗生活 2010-08-02
  • 打赏
  • 举报
回复
要输出来的话就用 preg_match_all();
life169 2010-07-16
  • 打赏
  • 举报
回复
preg_match('/.*<\/noscript>(.*)</div>/is', $old, $content);
echo $content[1];
试试看
还有,
你要把代码贴全了,要不下面的规则抓不到,无法正则出内容啊。
orcd 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 amani11 的回复:]
PHP code

//你的代码,字符串中间的'需要转义


preg_match('/.*<\/noscript>(.*)<div style="margin-bottom:10px; padding-top:10px; border-top:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;">/is', $old, $conten……
[/Quote]

我的意思是怎么样写正则表达式 把上面的一段去掉,把下面的一段也去掉,因为内容不光在这两段代码中间,下面还有内容。我没有贴出来。,你这种方式,下面的内容就取不到了。
Dleno 2010-07-15
  • 打赏
  • 举报
回复
你应该发出一个完整的字符串出来
CunningBoy 2010-07-15
  • 打赏
  • 举报
回复
preg_replace('/正则表达式/', 替换为字符串, 操作对象);
参考这个例子:
preg_replace("/(<\/?)(\w+)([^>]*>)/e", "'\\1'.strtoupper('\\2').'\\3'", $html_body);

这个例子的关键是\\1就是指代前面第一个()中的内容,\\2指代前面第二个()中的内容,\\3类似。
amani11 2010-07-14
  • 打赏
  • 举报
回复

//你的代码,字符串中间的'需要转义


preg_match('/.*<\/noscript>(.*)<div style="margin-bottom:10px; padding-top:10px; border-top:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;">/is', $old, $content);
echo $content[1];

21,887

社区成员

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

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