我怎样才能在PHP中获得div的内容

我有一个在PHP(string)的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') 

此代码后,我得到以下: 链接

3 Solutions collect form web for “我怎样才能在PHP中获得div的内容”

使用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"]'); 

要保存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 " 

这样做不够吗

 $id->nodeValue 
  • 如何在PHP中重写URL?
  • closures不赞成的错误php 5.3
  • 在写入上下文中不能使用方法返回值
  • 点斜线对PHP的作用是什么?
  • PHP内存分析
  • 用HTML链接替换文本中的网址
  • 不build议使用引用来分配新的返回值
  • PHP的标准input?