求教正则 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来直接获取对象的。所以必须的正则还是少不了的。 事半功倍! 急!求在哪里编写php 本人笨 求学习· 用同一个php.ini配置文件,能同时连接mssql 和mysql吗? 招php高手 批量更新数据 如何在页面做成级联显示啊 我有个客户,要求按照星期几的不同,而显示完全不同的网页,不止7个网站那么简单 这个mysql语句错误? 如何启用 iconv.dll 以及 php_iconv.dll 诚聘php兼职网站开发工程师 为每篇文章都在用户那加个COOKIE代表已查看过..合理吗? 进入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来直接获取对象的。所以必须的正则还是少不了的。 事半功倍!