beric
V2EX  ›  PHP

如何用PHP 取DIV标签内容?

  •  
  •   beric · May 18, 2013 · 11890 views
    This topic created in 4917 days ago, the information mentioned may be changed or developed.
    比如一个网页里面有之类的内容
    <div id="XXX">
    <div class="111"></div>
    <div class="222"></div>
    </div>

    请问下如何用PHP简单地实现对<div id="XXX">之中的内容即<div class="111"></div>
    <div class="222"></div>的提取?
    14 replies  •  1970-01-01 08:00:00 +08:00
    leveraging
    leveraging
    May 18, 2013 via Android
    1
    最终的网页都是php生成的,在响应之前你就该知道里面的内容。不然就用正则匹配吧
    Tiny
    Tiny
    May 18, 2013
    2
    这个不是用JS去取吗?
    Paranoid
    Paranoid
    May 18, 2013❤️1
    3
    picasso250
    picasso250
    May 18, 2013❤️1
    4
    php dom
    http://php.net/manual/en/book.dom.php

    或者简单但是不严谨的
    /<div\s+id="XXX"\s*>\s*(((?'Open'<div).+?)+((?'-Open'<\/div)[^<]+))<\/div>/s
    所以……你还是用dom吧
    leveraging
    leveraging
    May 18, 2013 via Android
    5
    我去,我理解错了。。原来是爬。。我用过3l的
    66beta
    66beta
    May 18, 2013 via iPad
    6
    send framework 貌似有该组件
    Mutoo
    Mutoo
    May 18, 2013
    7
    发现了一个神奇的叫做 phpQuery 的开源库 https://code.google.com/p/phpquery/
    可以像jQuery一样使用选择器
    baby
    baby
    May 18, 2013
    8
    xpath
    Golevka
    Golevka
    May 19, 2013
    9
    @vigoss 看到这个需求偶立即想到了反刍...
    leveraging
    leveraging
    May 19, 2013 via Android
    10
    @Golevka 啥是反刍?
    ETiV
    ETiV
    May 19, 2013
    11
    PHP 输出的 HTML, 再被 PHP 读回来解析的意思吧.
    zava
    zava
    May 19, 2013
    12
    同样推荐: http://simplehtmldom.sourceforge.net
    用过的,不错。
    beric
    beric
    OP
    May 19, 2013
    13
    @Golevka PHP吐出的然后再用PHP吃回来,再吐出?
    Xrong
    Xrong
    May 19, 2013
    14
    楼主这应该是搞爬虫么,是的话就是上面推荐的SimpleHtmlDom非常好用的...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2655 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 15:13 · PVG 23:13 · LAX 07:13 · JFK 10:13
    ♥ Do have faith in what you're doing.