Как я должен получить содержимое div, как это, используя dom в php? - PullRequest
2 голосов
/ 03 мая 2011

Div похож на это

<div style="width:90%;margin:0 auto;color:#Black;" id="content">
this is text, severaltags
</div> 

как мне получить содержимое div, включаятеги, использующие дом в php?

Ответы [ 4 ]

4 голосов
/ 03 мая 2011

Предполагая, что вы используете PHP5, вы можете использовать DOMDocument - обратите внимание, что это не предоставляет простых средств для извлечения внутреннего html элемента.Вы можете сделать что-то по следующему:

function DOMinnerHTML($element) 
{ 
    $innerHTML = ""; 
    $children = $element->childNodes; 
    foreach ($children as $child) 
    { 
        $tmp_dom = new DOMDocument(); 
        $tmp_dom->appendChild($tmp_dom->importNode($child, true)); 
        $innerHTML.=trim($tmp_dom->saveHTML()); 
    } 
    return $innerHTML; 
} 

$dom = new DOMDocument();

$dom->loadHTML($html);

$items = $dom->getElementsByTagName('div');
if ($items->length)
{
    $innerHTML = DOMinnerHTML($items->item(0));
}

echo $innerHTML;

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

preg_match('|<div[^>]+>(.*?)</div>|is', $html, $match);

if ($match)
{
    echo 'html is: ' . $match[1][0];
}
1 голос
/ 03 мая 2011

Чтобы получить значения, вы можете попробовать что-то вроде этого

$doc = new DOMDocument();
$doc->loadHTMLFile('link-t0-html-file.php');
$xpath = new DOMXPath($doc);
$element = $xpath->query("//*[@id='content']")->item(0);
echo $element->nodeValue;
1 голос
/ 03 мая 2011

Как то так?

$document = new DOMDocument();
$document->loadHTML($html);

$element = $document->getElementById('content');
0 голосов
/ 03 мая 2011

если я не ошибаюсь, вы хотите это

echo "< div style='width:90%;margin:0 auto;color:#000000;font-size:14px;line-height:24px;' 
id='content'>";

echo "this is text, several `<br/>` tags";

echo "< /div>"; 

только учтите, что никогда не используйте двойные кавычки (") в двойных кавычках ("). используйте одинарные кавычки (') в двойных кавычках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...