开发者

How should I get a div's content like this using dom in php?

Th开发者_运维问答e div is like this

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

how should i get the div's content including the

tags using dom in php?


Assuming your using PHP5 you can use DOMDocument -- take note that this doesn't provide simple means for retrieving inner html of an element. You can do something along the following:

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;

For something this simple, although I don't normally recommend it, I'd use regex:

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

if ($match)
{
    echo 'html is: ' . $match[1][0];
}


Something like this?

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

$element = $document->getElementById('content');


To get the values, you can try something like this

$doc = new DOMDocument();
$doc->loadHTMLFile('link-t0-html-file.php');
$xpath = new DOMXPath($doc);
$element = $xpath->query("//*[@id='content']")->item(0);
echo $element->nodeValue;


if i am not wrong you want this

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

just mind it never use double quote (") within double quote ("). use single quote(') within double quote.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜