开发者

How can I get a div content in php

开发者 https://www.devze.com 2023-03-15 10:51 出处:网络
I have a div in php(string) and I want to get the content. for example: <div id=\"product_list\" style=\"width:100%; float:none;\">

I have a div in php(string) and I want to get the content.

for example:

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

and I want

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

The style is changing, I know only the div id.

UPDATED

this is my code, same as turbod source and the results are the same too.

so this is the original html

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

And after t开发者_如何转开发his code I get the following: link


Use the php DomDocument class. 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"]');


To save an XML/HTML fragment, you need to save each child node:

$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);

Output:

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

If you only need the text content, you can fetch it directly:

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

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

Output:

string(63) "

       bla bla bla

      bla bla          
"


Isn't it enough to do...

$id->nodeValue
0

精彩评论

暂无评论...
验证码 换一张
取 消