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里的值?获取到最好是数组的形式 展开
<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里的值?获取到最好是数组的形式 展开
4个回答
2016-01-13 · 知道合伙人数码行家
关注
展开全部
可以写一个函数,获取到数组。
正则表达式是: <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);
?>
展开全部
可以写一个函数,获取到数组。
正则表达式是: <a[^>]*>\s*([^<]*)\s*</a>\s*<[^>]*class="date">([^<]*)<
请对上面的 PHP中特殊符号进行转义。
$1 是内容,$2是日期
函数写法参考
http://www.jb51.net/article/14049.htm【将字串中所有链接提取出来,保存到数组中】
正则表达式是: <a[^>]*>\s*([^<]*)\s*</a>\s*<[^>]*class="date">([^<]*)<
请对上面的 PHP中特殊符号进行转义。
$1 是内容,$2是日期
函数写法参考
http://www.jb51.net/article/14049.htm【将字串中所有链接提取出来,保存到数组中】
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$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]);
}
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]);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$str='uhlksd<li>内容</li>dsjkwkfsd';
preg_match_all('/<li>(.*?)<\/li>/is',$str,$match);print_r($match);
preg_match_all('/<li>(.*?)<\/li>/is',$str,$match);print_r($match);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询