在PHP中提取特定标记中的Html内容,而不使用外部标记
我想检索某个标记中的html代码。我知道我能做到这一点。但是,如果我想在没有外部标记的情况下提取内容,如何实现呢 比如说,在PHP中提取特定标记中的Html内容,而不使用外部标记,php,web-scraping,domdocument,html,Php,Web Scraping,Domdocument,Html,我想检索某个标记中的html代码。我知道我能做到这一点。但是,如果我想在没有外部标记的情况下提取内容,如何实现呢 比如说, $html = '<div><span>Hello world!</span><br><p>some other text</p></div>'; $doc = new DOMDocument; $doc->loadHTML($html); echo $doc->save
$html = '<div><span>Hello world!</span><br><p>some other text</p></div>';
$doc = new DOMDocument;
$doc->loadHTML($html);
echo $doc->saveXML($doc->getElementsByTagName('div')->item(0));
这将输出
<div>
<span>Hello world!</span>
<br>
<p>some other text</p>
</div>
我想要没有外部div标签的。我尝试了节点值,但它删除了所有标记
$html = '<div><span>Hello world!</span><br><p>some other text</p></div>';
$doc = new DOMDocument;
$doc->loadHTML($html);
$node = $doc->getElementsByTagName('div')->item(0);
echo $node->nodeValue;
有什么想法吗?好的,PHP innerHTML实现怎么样:
<?php
$html = '<div><span>Hello world!</span><br><p>some other text</p></div>';
$doc = new DOMDocument;
$doc->loadHTML($html);
$node = $doc->getElementsByTagName('div')->item(0);
echo DOMinnerHTML($node);
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;
}
?>
好的,PHP innerHTML实现怎么样:
<?php
$html = '<div><span>Hello world!</span><br><p>some other text</p></div>';
$doc = new DOMDocument;
$doc->loadHTML($html);
$node = $doc->getElementsByTagName('div')->item(0);
echo DOMinnerHTML($node);
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;
}
?>
你的要求没有真正的意义,你要求标签和它的内容,但你说你不想要标签。因为你知道你想要什么标签,你可以用regex简单地删除它,或者你可以简单地选择你想要的标签,而不介意有外部标签。你答对了。这意味着这个问题是有道理的。如果你认为这很简单,你能发布一个解决方案吗?我同意这是有道理的,有时我会忘记自己。我已经发布了一个适合你的解决方案。你所要求的没有意义,你要求标签和它的内容,但你说你不想要标签。因为你知道你想要什么标签,你可以用regex简单地删除它,或者你可以简单地选择你想要的标签,而不介意有外部标签。你答对了。这意味着这个问题是有道理的。如果你认为这很简单,你能发布一个解决方案吗?我同意这是有道理的,有时我会忘记自己。我已经发布了一个解决方案,应该适合你。