开发者社区 > 云原生 > 容器服务 > 正文

PHP中,如何用正则提取指定的html容器?

<div class="baby">
    <img src="" />
    <div class="another-shit">
        <h1>contont</h1>
        <p>ppppppp</p>
    </div>
    <a href="#">my link</a>
    <div class="lie"></div>
</div>
<div class="baby">
    <div class="another-shit">
        <h1>contont</h1>
        <p>ppppppp</p>
    </div>
    <a href="#">my link</a>
    <div class="lie"></div>
</div>
<div class="baby">
    <div class="another-shit">
        <h1>contont</h1>
        <p>ppppppp</p>
    </div>
    <a href="#">my link</a>
    <div class="lie"></div>
</div>
<div class="nonono"></div>

以上代码,我需要提取所有class为baby的容器内容,结构不一定是这样。也就是说,我需要提取某个容器的内容。 谢谢。

展开
收起
落地花开啦 2016-06-14 13:38:03 1955 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人
    <?php
    /* crying regex matcher ... */
    preg_match_all( 
    '(^(\s*)<(\w+)\sclass="baby">.*^\\1</\\2>)ism',
    <<<HTML_SECTION
    <div class="baby">
        <img src="" />
        <div class="another-shit">
            <h1>contont</h1>
            <p>ppppppp</p>
        </div>
        <a href="#">my link</a>
        <div class="lie"></div>
    </div>
    <div class="baby">
        <div class="another-shit">
            <h1>contont</h1>
            <p>ppppppp</p>
        </div>
        <a href="#">my link</a>
        <div class="lie"></div>
    </div>
    <div class="baby">
        <div class="another-shit">
            <h1>contont</h1>
            <p>ppppppp</p>
        </div>
        <a href="#">my link</a>
        <div class="lie"></div>
    </div>
    <div class="nonono"></div>
    HTML_SECTION
    , $result_tmp );
    
    /* only the first element we need ... */
    print_r( array_shift( $result_tmp ) );

    这种方法仅限使用在良好格式化的 html 文档上 ... 由缩进来判断标签的对应关系

    2019-07-17 19:37:20
    赞同 展开评论 打赏
问答分类:

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
天猫HTML5互动技术实践 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载