The options for surpressing errors and warnings will not work with this as they do for loadXML()
e.g.
<?php
$doc->loadHTMLFile($file, LIBXML_NOWARNING | LIBXML_NOERROR);
?>
will not work.
you must use:
<?php
libxml_use_internal_errors(true);
$doc->loadHTMLFile($file);
?>
and handle the exceptions as neccesarry.DOMDocument::loadHTMLFile
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
DOMDocument::loadHTMLFile
Референца за `domdocument.loadhtmlfile.php` со подобрена типографија и навигација.
DOMDocument::loadHTMLFile
класата mysqli_driver
DOMDocument::loadHTMLFile — Вчитај HTML од датотека
= NULL
Функцијата парсира HTML документ во датотеката именувана
filenameФункцијата парсира HTML содржан во стрингот
од PHP 8.0.0. Силно се обесхрабрува потпирањето на оваа функција. Dom\HTMLDocument . За разлика од вчитувањето XML, HTML не мора да биде добро формиран за да се вчита. DOMDocument.
за парсирање и обработка на модерен HTML наместо
Оваа функција го парсира влезот користејќи HTML 4 парсер. Правилата за парсирање на HTML 5, што го користат модерните веб прелистувачи, се различни. Во зависност од влезот, ова може да резултира со различна DOM структура. Затоа оваа функција не може безбедно да се користи за санирање на HTML.
libxml Однесувањето при парсирање на HTML може да зависи од верзијата на што се користи, особено во однос на граничните услови и ракувањето со грешки. За парсирање што е во согласност со спецификацијата HTML5, користете or
Dom\HTMLDocument::createFromString()Dom\HTMLDocument::createFromFile()
, додадено во PHP 8.4. DOMDocument Како пример, некои HTML елементи имплицитно ќе затворат родителски елемент кога ќе се сретнат. Правилата за автоматско затворање на родителски елементи се разликуваат помеѓу HTML 4 и HTML 5 и затоа резултирачката DOM структура што
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Errors/Exceptions
HTML стрингот. filename
или е именувана празна датотека, ќе се генерира предупредување. Ова предупредување не е генерирано од libxml и не може да се обработи со користење грешки кога ќе наиде на лош маркап..
, ќе се генерира предупредување. Ова предупредување не е генерирано од libxml и не може да се ракува со функциите за ракување со грешки на libxml. E_WARNING Иако лошо формиран HTML треба успешно да се вчита, оваа функција може да генерира грешки кога ќе наиде на лош маркап. функциите за ракување со грешки на libxml
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.3.0 | Низата што треба да се додаде. bool Оваа функција сега има привремено |
| 8.0.0 |
Повикувањето на оваа функција статички сега ќе фрли Грешка. Претходно, а E_DEPRECATED беше кренат.
|
Примери
може да се користат за ракување со овие грешки.
<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>Види Исто така
- DOMDocument::loadHTML() - Вчитај XML од датотека
- DOMDocument::saveHTML() - Исфрли го внатрешното XML дрво назад во датотека
- DOMDocument::saveHTMLFile() - Исфрла внатрешен документ во датотека користејќи HTML формат
Белешки од корисници 4 белешки
<?php
// try this html listing example for all nodes / includes a few getElementsByTagName options:
$file = $DOCUMENT_ROOT. "test.html";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);
// example 1:
$elements = $doc->getElementsByTagName('*');
// example 2:
$elements = $doc->getElementsByTagName('html');
// example 3:
//$elements = $doc->getElementsByTagName('body');
// example 4:
//$elements = $doc->getElementsByTagName('table');
// example 5:
//$elements = $doc->getElementsByTagName('div');
if (!is_null($elements)) {
foreach ($elements as $element) {
echo "<br/>". $element->nodeName. ": ";
$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo $node->nodeValue. "\n";
}
}
}
?>This puts the HTML into a DOM object which can be parsed by individual tags, attributes, etc.. Here is an example of getting all the 'href' attributes and corresponding node values out of the 'a' tag. Very cool....
<?php
$myhtml = <<<EOF
<html>
<head>
<title>My Page</title>
</head>
<body>
<p><a href="/mypage1">Hello World!</a></p>
<p><a href="/mypage2">Another Hello World!</a></p>
</body>
</html>
EOF;
$doc = new DOMDocument();
$doc->loadHTML($myhtml);
$tags = $doc->getElementsByTagName('a');
foreach ($tags as $tag) {
echo $tag->getAttribute('href').' | '.$tag->nodeValue."\n";
}
?>
This should output:
/mypage1 | Hello World!
/mypage2 | Another Hello World!In this post http://softontherocks.blogspot.com/2014/11/descargar-el-contenido-de-una-url_11.html I found a simple way to get the content of a URL with DOMDocument, loadHTMLFile and saveHTML().
function getURLContent($url){
$doc = new DOMDocument;
$doc->preserveWhiteSpace = FALSE;
@$doc->loadHTMLFile($url);
return $doc->saveHTML();
}