fork(1) download
  1. <?php
  2.  
  3. $content = <<<EOD
  4. <div id="foo">
  5. <p>...</p>
  6. </div>
  7.  
  8. <pre class="bar">
  9. <code>
  10. echo "Hello, World!";
  11. </code>
  12. </pre>
  13.  
  14. <p id="third">Hello.</p>
  15.  
  16. Текстовый узел.
  17.  
  18. <table id="fourth">
  19. <tbody>
  20. Content
  21. </tbody>
  22. </table>
  23.  
  24. Ещё один текстовый узел.
  25. EOD;
  26.  
  27. $dom = new DOMDocument( '1.0', 'UTF-8' );
  28. $dom->loadHTML( $content );
  29. $xpath = new DOMXPath( $dom );
  30. $tags = $xpath->query('/html/body/* | /html/body/text()');
  31. $nodes = [];
  32. foreach( $tags as $node ) {
  33. $tmp = utf8_decode(trim($node->c14n()));
  34. if(! empty($tmp)) {
  35. $nodes[] = $tmp;
  36. }
  37. }
  38. print_r($nodes);
Success #stdin #stdout 0.01s 52488KB
stdin
Standard input is empty
stdout
Array
(
    [0] => <div id="foo">
	<p>...</p>
</div>
    [1] => <pre class="bar">
	<code>
		echo "Hello, World!";
	</code>
</pre>
    [2] => <p id="third">Hello.</p>
    [3] => Текстовый узел.
    [4] => <table id="fourth"><tbody>
		Content
	</tbody></table>
    [5] => Ещё один текстовый узел.
)