div就像这样
<div style="width:90%;margin:0 auto;color:#Black;" id="content">
this is text, severaltags
</div>
我应该如何获得div的内容,包括在php中使用dom的标签?
答案 0 :(得分:4)
假设您使用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 :(得分:1)
这样的东西?
$document = new DOMDocument();
$document->loadHTML($html);
$element = $document->getElementById('content');
答案 2 :(得分:1)
要获取值,您可以尝试这样的
$doc = new DOMDocument();
$doc->loadHTMLFile('link-t0-html-file.php');
$xpath = new DOMXPath($doc);
$element = $xpath->query("//*[@id='content']")->item(0);
echo $element->nodeValue;
答案 3 :(得分:0)
如果我没错,你想要这个
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>";
请记住,它绝不会在双引号(“)中使用双引号(”)。在双引号中使用单引号(')。