У меня есть сценарий PHP, который должен прочитать файл HTML, а затем вернуть содержимое первого <h1>
тег, который он находит. Я не хочу использовать regex или Simple HTML DOM Parser, просто 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;
кажется, делает свое дело.
Проблема в том, что $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;
$ документ является объектом, который не может быть преобразован в строку (некоторые объекты могут)
Видеть это ссылка на сайт для всех свойств и методов, которые он может предложить, например,
echo $document->tagName;
или же
echo $document->textContent;
Вы также можете получить полное значение тега с помощью метода C14N класса DOMNode:
echo $first_h1->C14N();