tidyNode::isHtml
(PHP 5, PHP 7)
tidyNode::isHtml — このノードが HTML要素 であるかどうかを調べる
説明
public tidyNode::isHtml ( ) : bool
このノードが ルート要素 以外の HTML要素 であるかを調べます。
返り値
ノードが ルート要素 以外の HTML要素 である場合に true
、それ以外の場合に false
を返します。
変更履歴
バージョン | 説明 |
---|---|
7.3.24, 7.4.12 | 適切な振る舞いをするように修正されました。
これより前のバージョンでは、ほとんど全てのノードをHTML要素だと報告していました。 |
例
例1 HTML ドキュメントからの HTML コードの抽出
<?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 HTMLHTML;$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 childrens if($node->hasChildren()) { foreach($node->child as $child) { get_nodes($child); } }}?>
上の例の出力は以下となります。
# 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>