2013-07-18 5 views
0

Я пытаюсь сохранить результат getElementById с помощью PHP.DOMDOCUMENT | PHP: сохранить вывод getElementById в новый HTML-файл

код у меня есть:

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

Это отображает соответствующий текст, теперь я хочу, чтобы сохранить, что в новый файл, я попытался с помощью сохранения(), saveHTMLfile() и file_put_contents(), ни один из тех, которые работают, потому что они сохраняют только строки, и я не могу превратить $ div в строку, поэтому я застрял.

Если я просто сохранить всю вещь:

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

Это работает, но он сохраняет все, а не только ту часть, которая мне нужна.

Я полный DOM noob, поэтому у меня может быть что-то очень простое, но я не могу много узнать об этом в своих поисках.

ответ

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

Это замечательно, ура! – DasSnipez