php 正则表达式 取出 li标签里的内容

html='<liclass="zdy"><ahref="#"target="_blank">内容1</a><spanclass="date">2015-07-07</s... html='
<li class="zdy">
<a href=" # " target="_blank" >
内容1
</a>
<span class="date">2015-07-07</span>
</li>
<li class="zdy">
<a href=" # " target="_blank" >
内容2
</a>
<span class="date">2015-07-08</span>
</li>‘;
php 正则表达式怎么获取到li标签的文字内容和时间还有href里的值?获取到最好是数组的形式
展开
 我来答
一诺千金丨
2016-01-13 · 知道合伙人数码行家
一诺千金丨
知道合伙人数码行家
采纳数:8766 获赞数:32842
1、专业生产电力检测设备,若要咨询相关直接向我咨询关于电力检测设备的问题吧。 2、武高电测最佳员工。

向TA提问 私信TA
展开全部

可以写一个函数,获取到数组。
正则表达式是:   <a[^>]*>\s*([^<]*)\s*</a>\s*<[^>]*class="date">([^<]*)<
请对上面的 PHP中特殊符号进行转义。
$1  是内容,$2是日期
函数写法参考

<?php
$str = '
<ul><li><a href="#">内容111</a></li><li><a href="#">内容111</a></li><li><a href="#">内容111</a></li><li><a href="#">内容111</a></li></ul>
<ol><li><a href="#">内容2</a></li><li><a href="#">内容2</a></li><li><a href="#">内容2</a></li><li><a href="#">内容12</a></li></ol>
';
$search = '/<ul>(.*?)<\/ul>/is';
preg_match_all($search,$str,$r,PREG_SET_ORDER );
print_r($r);
$search = '/<ol>(.*?)<\/ol>/is';
preg_match_all($search,$str,$r,PREG_SET_ORDER );
print_r($r);
?>
cnbubble
2015-07-09 · TA获得超过2606个赞
知道大有可为答主
回答量:1988
采纳率:83%
帮助的人:842万
展开全部
可以写一个函数,获取到数组。
正则表达式是: <a[^>]*>\s*([^<]*)\s*</a>\s*<[^>]*class="date">([^<]*)<
请对上面的 PHP中特殊符号进行转义。
$1 是内容,$2是日期
函数写法参考
http://www.jb51.net/article/14049.htm【将字串中所有链接提取出来,保存到数组中】
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
443508407
2015-07-09 · TA获得超过394个赞
知道小有建树答主
回答量:266
采纳率:66%
帮助的人:112万
展开全部
$str = <<<EOF
html='
<li class="zdy">
<a href=" # " target="_blank" >
内容1
</a>
<span class="date">2015-07-07</span>
</li>
<li class="zdy">
<a href=" # " target="_blank" >
内容2
</a>
<span class="date">2015-07-08</span>
</li>‘
EOF;
preg_match_all("/<li class=\"zdy\">.*<\/li>/sU",$str,$li);
$arr = array();
foreach( $li[0] as $val ){
preg_match("/target=\"_blank\" >(.*)<\/a>/sU", $val,$content);
preg_match("/span class=\"date\">(.*)<\/span>/U", $val,$time);
$arr[] = array("content"=>$content[1],"time"=>$time[1]);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
appwq
2015-10-27 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:155
采纳率:66%
帮助的人:82.8万
展开全部
$str='uhlksd<li>内容</li>dsjkwkfsd';
preg_match_all('/<li>(.*?)<\/li>/is',$str,$match);print_r($match);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式