How can I get a div content in php

Solution 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:

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          
"