求教正则 html中包含如下div,想用正则取得这段div中的内容<div class="text clear" id="contentText" collection="Y">内容</div> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $s =<<<eof<div class="text clear" id="contentText" collection="Y">内容</div>eof;preg_match('/<div\s+class="text\s+clear"\s+id="contentText"\s+collection="Y">(.*?)<\/div>/is',$s,$arr);echo $arr[1]; 没错,没有限定的,效率会比较低。如果内容多,那不是要把所有DIV的内容全都匹配了?那么就得用这个preg_match_all!获取对应ID特征值的匹配!取id值包括2的DIV内容,代码如下:<?php$s = <<<eof<div class="text clear" id="contentText" collection="Y">内容</div><div class="text clear" id="contentText1" collection="Y">内容1</div><div class="text clear" id="contentText2" collection="Y">内容2</div>eof;//preg_match('/<div\s+class="text\s+clear"\s+id="contentText"\s+collection="Y">(.*?)<\/div>/is',$s,$arr);preg_match('/<div[^>]*id[^>]*2[^>]*>(.*?)<\/div>/is',$s,$arr);//特征值为2.这个值也可以是其他任何字符!echo $arr[1];//数字2为ID特征值,所以输出内容2?>如果要获取所有的div内容,可以这样:<?php$s = <<<eof<div class="text clear" id="contentText" collection="Y">内容</div><div class="text clear" id="contentText1" collection="Y">内容1</div><div class="text clear" id="contentText2" collection="Y">内容2</div>eof;//preg_match('/<div\s+class="text\s+clear"\s+id="contentText"\s+collection="Y">(.*?)<\/div>/is',$s,$arr);//preg_match('/<div[^>]*id[^>]*2[^>]*>(.*?)<\/div>/is',$s,$arr);preg_match_all("/<div[^>]*>(.*?)<\/div>/is",$s,$arr);echo print_r($arr[1]);//输出所有div标签的内容!?> 为什么非用正则呢? 如果是客户端可以用jquery获取id的内容不就行了. 如果服务器端获取其他网站的.用dom或file_get_contents 获取. 不用正则,怎么把file_get_contents获取到的一大丢HTML中有用的东西提取出来呢?还有远程HTML文件里的内容也无法直接使用JQUERY来直接获取对象的。所以必须的正则还是少不了的。 事半功倍! 有问题求助,第二个页面没有接收到值。 导入表的问题 preg_replace 请问怎样使用PHPmailer 有用ethna和smarty的吗? 新手请教,如何判断查询结果为空 WINDOWS下用什么平台开发PHP?ForntPage用不了。 CTB 文本论坛 && CDB mysql数据库论坛开始发布 === 正式发布 请问PHP的学习步骤应该是怎么样子的。 面向对象分析与设计疑问 进入mydql创建数据库提示下面错误(如图) 求简单好用的php文件管理系统
$s =<<<eof
<div class="text clear" id="contentText" collection="Y">
内容
</div>
eof;
preg_match('/<div\s+class="text\s+clear"\s+id="contentText"\s+collection="Y">(.*?)<\/div>/is',$s,$arr);
echo $arr[1];
没错,没有限定的,效率会比较低。如果内容多,那不是要把所有DIV的内容全都匹配了?
那么就得用这个preg_match_all!获取对应ID特征值的匹配!取id值包括2的DIV内容,代码如下:
<?php
$s = <<<eof
<div class="text clear" id="contentText" collection="Y">
内容
</div>
<div class="text clear" id="contentText1" collection="Y">
内容1
</div>
<div class="text clear" id="contentText2" collection="Y">
内容2
</div>
eof;
//preg_match('/<div\s+class="text\s+clear"\s+id="contentText"\s+collection="Y">(.*?)<\/div>/is',$s,$arr);
preg_match('/<div[^>]*id[^>]*2[^>]*>(.*?)<\/div>/is',$s,$arr);//特征值为2.这个值也可以是其他任何字符!
echo $arr[1];//数字2为ID特征值,所以输出内容2
?>如果要获取所有的div内容,可以这样:
<?php
$s = <<<eof
<div class="text clear" id="contentText" collection="Y">
内容
</div>
<div class="text clear" id="contentText1" collection="Y">
内容1
</div>
<div class="text clear" id="contentText2" collection="Y">
内容2
</div>
eof;
//preg_match('/<div\s+class="text\s+clear"\s+id="contentText"\s+collection="Y">(.*?)<\/div>/is',$s,$arr);
//preg_match('/<div[^>]*id[^>]*2[^>]*>(.*?)<\/div>/is',$s,$arr);
preg_match_all("/<div[^>]*>(.*?)<\/div>/is",$s,$arr);
echo print_r($arr[1]);//输出所有div标签的内容!
?>
还有远程HTML文件里的内容也无法直接使用JQUERY来直接获取对象的。所以必须的正则还是少不了的。 事半功倍!