如何在php中获取div内容

时间:2011-06-27 10:37:45

标签: php

我在php(字符串)中有一个div,我想获取内容。

例如:

<div id="product_list" style="width:100%; float:none;">
      <div>
       bla bla bla
      </div>
      bla bla          
</div>

我想要

<div>
     bla bla bla
</div>
     bla bla

风格正在改变,我只知道div id。

已更新

这是我的代码,与turbod源相同,结果也一样。

所以这是原来的html

$doc = new DOMDocument();
$doc->loadHTML($buffer);
$id = $doc->getElementById('product_list')

在此代码之后,我得到以下内容:link

3 个答案:

答案 0 :(得分:17)

使用php DomDocument类。 http://www.php.net/manual/en/class.domdocument.php

$dom = new DOMDocument();

$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$divContent = $xpath->query('//div[id="product_list"]');

答案 1 :(得分:2)

要保存XML / HTML片段,您需要保存每个子节点:

$dom = new DOMDocument();
$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$result = '';
foreach($xpath->evaluate('//div[@id="product_list"]/node()') as $childNode) {
  $result .= $dom->saveHtml($childNode);
}
var_dump($result);

输出:

string(74) "
      <div>
       bla bla bla
      </div>
      bla bla          
"

如果您只需要文字内容,可以直接获取:

$dom = new DOMDocument();
$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
var_dump(
  $xpath->evaluate('string(//div[@id="product_list"])')
);

输出:

string(63) "

       bla bla bla

      bla bla          
"

答案 2 :(得分:-1)

这还不够......

$id->nodeValue