简体   繁体   中英

DOMDOCUMENT | PHP: save getElementById output into new HTML file

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.

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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM