Php preg_match ul li错误

时间:2017-06-16 14:44:45

标签: php preg-match preg-match-all

获取此代码中的li值;     我用php来卷曲。在Html有太多ul之后。所以我必须把选择器类名称。

 <ul class="pagination ng-scope">
    <li class="arrow previous unavailable"><a href="#listable"><i></i></a></li>
    <li class="current"><a href="http://blablaa.com/1">1</a></li>
    <li><a href="http://blablaa.com/2">2</a></li>
    <li class="arrow next"><a href="http://blablaa/2#listable" class="next"><i></i></a></li>
</ul>


preg_match('#<ul class="pagination">(.*?)</ul>#msi', $result['result'], $pagination);
print_r($pagination);
preg_match_all('#<li>.*?</li>#msi', $pagination[1], $pages);

for ($i = 1; $i <= count($pages[0]) + 1; $i++) {
    $link = $baselink . "/" . $i;
}

echo $link;

但不是结果。请帮助我,谢谢。

1 个答案:

答案 0 :(得分:0)

你用

开始正则表达式
<ul class="pagination">

并且您的HTML以

开头
<ul class="pagination ng-scope">

显然不是表达式的匹配。将<ul class="pagination">更改为<ul class="pagination.*">即可开始匹配。

如果您需要页码,可以使用'#<a[^>]*>(\d+)</a>#msi'正则表达式,它会收集<a>标记内的所有数字。 example