(PHP 5, PHP 7, PHP 8)
tidyNode::isHtml — Indique si le noeud est une noeud d'élément
Indique si le noeud courant est un noeud d'élément, mais pas le noeud racine du document.
Retourne true
si le noeud est un noeud d'élément, mais pas le noeud racine
du document, false
sinon.
Version | Description |
---|---|
7.3.24, 7.4.12 | Cette fonction a été corrigée pour avoir un comportement raisonnable. Auparavant, la plupart des noeuds était rapporté comme étant un noeud HTML. |
Exemple #1 Extrait du code HTML depuis un document mixte
<?php
$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* code JSTE */
alert('Hello World');
#>
</head>
<body>
<?php
// code PHP
echo 'hello world!';
?>
<%
/* code ASP */
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) {
// Vérifie si le noeud courant est du type demandé
if($node->{isHtml()) {
echo "\n\n# Noeud Html #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}
// Vérifie si le noeud courant a des enfants
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}
?>
L'exemple ci-dessus va afficher :
# Noeud html #1 <html> <head> <?php echo '<title>title</title>'; ?><# /* code JSTE */ alert('Hello World'); #> <title></title> </head> <body> <?php // code PHP echo 'hello world!'; ?><% /* code ASP */ response.write("Hello World!") %><!-- Comments --> Hello WorldOutside HTML </body> </html> # Noeud html #2 <head> <?php echo '<title>title</title>'; ?><# /* code JSTE */ alert('Hello World'); #> <title></title> </head> # Noeud html #3 <title></title> # Noeud html #4 <body> <?php // code PHP echo 'hello world!'; ?><% /* code ASP */ response.write("Hello World!") %><!-- Comments --> Hello WorldOutside HTML </body>