(PHP 5, PHP 7, PHP 8)
tidyNode::isHtml — Проверяет, является ли узел узлом элемента
Проверяет, является ли узел узлом элемента, но не корневым узлом документа.
Сигнатура функции не содержит параметров.
Возвращает true, если узел является узлом элемента, но не корневым узлом документа, в противном случае возвращает false.
| Версия | Описание |
|---|---|
| 7.3.24, 7.4.12 | Исправлено, теперь функция ведёт себя разумно. Раньше почти любой узел считался узлом HTML. |
Пример #1 Извлечение HTML-кода из смешанного HTML-документа
<?php
$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
/* JSTE код */
alert('Привет Мир');
#>
</head>
<body>
<?php
// PHP-код
echo 'привет мир!';
?>
<%
/* ASP код */
response.write("Привет Мир!")
%>
<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;
$tidy = tidy_parse_string($html);
$num = 0;
get_nodes($tidy->html());
function get_nodes($node) {
// проверяет текущий узел на соответствие требуемому типу
if($node->isHtml()) {
echo "\n\n# html нода #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}
// проверяет существование потомков у текущего узла
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}
?>Результат выполнения приведённого примера:
# html узел #1
<html>
<head>
<?php echo '<title>заголовок</title>'; ?><#
/* JSTE код */
alert('Привет Мир');
#>
<title></title>
</head>
<body>
<?php
// PHP-код
echo 'привет мир!';
?><%
/* ASP код */
response.write("Привет Мир!")
%><!-- Комментарии -->
Привет МирЗа пределами HTML кода
</body>
</html>
# html узел #2
<head>
<?php echo '<title>заголовок</title>'; ?><#
/* JSTE код */
alert('Привет Мир');
#>
<title></title>
</head>
# html узел #3
<title></title>
# html узел #4
<body>
<?php
// PHP-код
echo 'привет мир!';
?><%
/* ASP код */
response.write("Привет Мир!")
%><!-- Комментарии -->
Привет МирЗа пределами HTML кода
</body>