'How can I get a div content in php

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 this code I get the following: link

php


Solution 1:[1]

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

Solution 2:[2]

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          
"

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Erel Segal-Halevi
Solution 2 ThW