我有一个PHP脚本应该读取HTML文件,然后返回它找到的第一个<h1>
标记的内容。我不想使用正则表达式或简单的HTML DOM解析器 - 只需简单易用的PHP。
到目前为止,这是我的代码:
$document = new DOMDocument();
$document->loadHTMLFile($post_url);
$matches = $document->getElementsByTagName('h1');
$first_h1 = $matches->item(0);
echo $first_h1;
但是,当我运行代码时,出现错误PHP Catchable fatal error: Object of class DOMElement could not be converted to string
任何人都可以帮助我解决我的错误吗?
提前致谢!
解决方案:用echo $first_h1->nodeValue;
替换最后一行似乎可以解决问题。
答案 0 :(得分:1)
问题是$first_h1
是一个DOMElement
对象而不是一个字符串,并且它没有将自身转换为字符串的方法,因此您不能简单地将其回显。但是,您可以对其执行var_dump
:
$document = new DOMDocument();
$document->loadHTMLFile($post_url);
$matches = $document->getElementsByTagName('h1');
$first_h1 = $matches->item(0);
var_dump($first_h1);
如果需要获取元素的文本内容(即标记之间的文本),请使用nodeValue属性:
echo $first_h1->nodeValue;
答案 1 :(得分:0)
$ document 是一个无法转换为字符串的对象(某些对象可以)。
有关它必须提供的所有属性和方法,请参阅此 link ,例如
echo $document->tagName;
或
echo $document->textContent;
答案 2 :(得分:0)