2012-03-09 3 views
3

В настоящее время я использую nodeValue, чтобы дать мне вывод HTML, однако он лишает код HTML и просто дает мне простой текст. Кто-нибудь знает, как я могу изменить свой код, чтобы дать мне внутренний HTML элемента, используя его ID?Как извлечь innerHTML с помощью PHP Dom

function getContent($url, $id){ 

// This first section gets the HTML stuff using a URL 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 
$html = curl_exec($ch); 
curl_close($ch); 

// This second section analyses the HTML and outputs it 
$newDom = new domDocument; 
$newDom->loadHTML($html); 
$newDom->preserveWhiteSpace = false; 
$newDom->validateOnParse = true; 

$sections = $newDom->getElementById($id)->nodeValue; 
echo $sections; 


} 
+0

Что делает код сейчас? (что находится в '$ sections'?) – enygma

+0

Вы пробовали $ sections = $ newDom-> getElementById ($ id) -> saveHTML(); ? – Martin

+0

http://ru2.php.net/manual/en/domdocument.savehtml.php $ newDom-> saveHTML ($ newDom-> getElementById ($ id)); – kirilloid

ответ

2

Это работает для меня:

$sections = $newDom->saveXML($newDom->getElementById($id)); 

http://www.php.net/manual/en/domdocument.savexml.php

Если у вас есть PHP 5.3.6, это также может быть одним из вариантов:

$sections = $newDom->saveHTML($newDom->getElementById($id)); 

http://www.php.net/manual/en/domdocument.savehtml.php

+0

Эй, Мартин, это было потрясающе. Отлично. – user1259294

0

Я изменяю код, и он отлично работает для меня. Ниже приведен код

$ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 
    $html = curl_exec($ch); 
    curl_close($ch); 
    $newDom = new domDocument; 
    libxml_use_internal_errors(true); 
    $newDom->loadHTML($html); 
    libxml_use_internal_errors(false); 
    $newDom->preserveWhiteSpace = false; 
    $newDom->validateOnParse = true; 

    $sections = $newDom->saveHTML($newDom->getElementById('colophon')); 
    echo $sections; 
Смежные вопросы