求PHP提取html中 body 内容 的正则表达式。会追加分数。

我是把本地的一个html文件读取出来存在一个变量$daiMa里边,
然后用正则表达式
$css_zheng_ze = "/(<body>)(.|\n)*(<\/body>)/";
preg_match_all($css_zheng_ze,$daiMa,$end);
匹配
可是 $end二维数组里边得不到含有body内容的结果啊。
正则表达式
/(<body>)(.*?)(<\/body>)/这个 也不行。

$end[2][0]里边什么都没有啊。

下边是body的代码。
……
</head>
<body>
<div class="warp">
<div class="shirt">

</div>
</div><!--warp-->
</body>
</html>
body内容 不含有<body>标签。

"/(<body>)(.*?)(<\/body>)/"这个其实就比较对了,只是少了点模式修正符号
改成
"/(<body>)(.*?)(<\/body>)/is"
就可以了。
模式修正符号是很重要的。

下边是书上的原话。

s:如果设置了此修正符,模式中的圆点字符“.”匹配所有字符,包括换行符。即将字符串视为单行,换行符看作普通字符看待。

参考资料:书。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-18
$css_zheng_ze = "/<body>([\s\S]*)<\/body>/Ui";
preg_match_all($css_zheng_ze,$daiMa,$end);
绝对可以
第2个回答  2012-04-14
preg_match_all('#<body>(.+?)</body>#is',$daiMa,$end);
第3个回答  2012-04-24
把·替换成[\w\W]就行

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网