php8.5
Home/ Manual/ tidy / tidynode/ tidyNode::isHtml

tidyNode::isHtml

PHP function Edit on GitHub ✎

(PHP 5, PHP 7, PHP 8)

Checks if a node is an element node

Description

tidyNode::isHtml(): bool

Tells if the node is an element node, but not the root node of the document.

Parameters Parameters

Return Values

Returns true if the node is an element node, but not the root node of the document, false otherwise.

Changelog

VersionDescription
7.3.24, 7.4.12This function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node.

Examples

Extract HTML code from a mixed HTML document

php
<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* JSTE code */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {
    // check if the current node is of requested type
    if($node->isHtml()) {
        echo "\n\n# html node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has children
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

The above example will output:

output
# html node #1
<html>
<head>
<?php echo '<title>title</title>'; ?><#
  /* JSTE code */
  alert('Hello World');
#>
<title></title>
</head>
<body>
<?php
  // PHP code
  echo 'hello world!';
?><%
  /* ASP code */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>
</html>

# html node #2
<head>
<?php echo '<title>title</title>'; ?><#
  /* JSTE code */
  alert('Hello World');
#>
<title></title>
</head>


# html node #3
<title></title>


# html node #4
<body>
<?php
  // PHP code
  echo 'hello world!';
?><%
  /* ASP code */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>

Source: reference/tidy/tidynode/ishtml.xml · from the official PHP manual (php/doc-en)