2015-03-16 2 views
3

У меня есть два файла: mainpage.html и recordinput.phpКак получить innerhtml элемента из PHP

мне нужно получить innerhtml Div от в mainpage.html в моем файле PHP.

Я скопировал код здесь:

в моем файле PHP, у меня есть

$dochtml = new DOMDocument(); 
//libxml_use_internal_errors(true); 
$dochtml->loadHTMLFile("mainpage.html"); 

$div = $dochtml->getElementById('div2'); 
$div2html = get_inner_html($div); 
echo "store information as: ".$div2html; 


function get_inner_html(DOMNode $elem) 
{ 

    $innerHTML = " "; 
$children = $elem->childNodes; 

foreach ($children as $child) 
{ 
    $innerHTML .= $elem->ownerDocument->saveHTML($child); 
} 
echo "function return: ".$innerHTML."<br />"; 
return $innerHTML; 
} 

возвращенного просто пусто. Любое тело помогает мне? Я потратил два дня на это. Я чувствую, что проблема здесь:

$dochtml->loadHTMLFile("mainpage.html"); 

Благодаря

ответ

3

PHP DOMDocument уже обеспечили функцию для извлечения содержимого между селекторами. Вот как вы это делаете

$div = $dochtml->getElementById('div2')->nodeValue; 

Так что вам не нужно делать свою собственную функцию.

+0

так что $ div - это строка? Я попытался, он все еще пуст. – yunyun

+0

Я только что нашел, что код работает. Он может принимать innerhtml с главной страницы. Тем не менее, он принимает innerhtml, когда я начинаю страницу, а не после изменения. – yunyun

+0

Если мой ответ был полезен, вы можете отметить его принятым. благодаря –

1

Если вы хотите, чтобы получить содержимое Div включая все вложенные теги, то вы можете сделать это следующим образом:

echo $div->ownerDocument->saveHTML($div); 

Пример: http://3v4l.org/GCbJk

Обратите внимание, что это включает в себя сам div2 тег , которую вы могли бы легко удалить.

Смежные вопросы