如何使用 PHP Dom 提取 innerHTML [重复]
Posted
技术标签:
【中文标题】如何使用 PHP Dom 提取 innerHTML [重复]【英文标题】:How to extract innerHTML using the PHP Dom [duplicate] 【发布时间】:2012-03-26 21:57:37 【问题描述】:我目前正在使用 nodeValue 来给我 html 输出,但是它正在剥离 HTML 代码,只给我纯文本。有谁知道我如何修改我的代码,通过使用它的 ID 给我一个元素的内部 HTML?
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;
【问题讨论】:
代码现在做了什么? ($sections
中有什么内容?)
你试过 $sections = $newDom->getElementById($id)->saveHTML(); ?
ru2.php.net/manual/en/domdocument.savehtml.php $newDom->saveHTML($newDom->getElementById($id));
【参考方案1】:
这对我有用:
$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
【讨论】:
嘿,马丁,太棒了。工作正常。【参考方案2】:我已经修改了代码,它对我来说工作正常。请在下面找到代码
$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;
【讨论】:
以上是关于如何使用 PHP Dom 提取 innerHTML [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP Simple HTML DOM Parser 提取标题和元描述?
将表单值传递给 PHP 包含在 HTML DOM innerHTML 中
如何在 JS 和 DOM 中创建元素、设置属性、使用 innerHTML 和 appendChild
InnerText=InnerHtml - 如何使用 HtmlAgilityPack 提取可读文本