Php/docs/tidynode.ishtml

提供:Dev Guides
< Php
移動先:案内検索

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>