У меня есть div в php (строка), и я хочу получить контент.
например:
<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.
ОБНОВЛЕНО
это мой код, тот же, что и источник турбонаддува, и результаты одинаковы.
так что это оригинальный html
$doc = new DOMDocument(); $doc->loadHTML($buffer); $id = $doc->getElementById('product_list')
И после этого кода я получаю следующее: link
Используйте класс 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