0

I'm trying to save the result of getElementById using PHP.

The code I have:

<?php
$doc = new DOMDocument();
$doc->validateOnParse = true;
@$doc->loadHTMLfile('test.htm');
$div = $doc->getElementById('storytext');
echo $doc->saveHTML($div);
?>

This displays the relevant text, I now want to save that to a new file, I have tried using save(), saveHTMLfile() and file_put_contents(), none of those work because they only save strings and I cannot turn $div into a string, so I'm stuck.

If I just save the entire thing:

$doc->saveHTMLfile('name.ext');

It works but it saves everything, not just the part that I need.

I'm a complete DOM noob so I may be missing something very simple but I can't really find much about this through my searches.

DasSnipez
  • 2,182
  • 4
  • 20
  • 29

1 Answers1

0
function getInnerHtml( $node ) { 
    $innerHTML= ''; 
    $children = $node->childNodes; 
    foreach ($children as $child) { 
        $innerHTML .= $child->ownerDocument->saveXML( $child ); 
    } 

    return $innerHTML; 
}

$html = getInnerHtml($div);
file_put_contents("name.ext", $html);
lePunk
  • 523
  • 3
  • 10