123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <?php
- error_reporting(E_ALL);
- include_once('../simple_html_dom.php');
- $html = file_get_html('google.htm');
- //$html = file_get_html('youtube.htm');
- //$html = file_get_html('Product.ibatis.xml');
- $lang = '';
- $l=$html->find('html', 0);
- if ($l!==null)
- $lang = $l->lang;
- if ($lang!='')
- $lang = 'lang="'.$lang.'"';
- $charset = $html->find('meta[http-equiv*=content-type]', 0);
- $target = array();
- $query = '';
- if (isset($_REQUEST['query'])) {
- $query = $_REQUEST['query'];
- $target = $html->find($query);
- }
- function stat_dom($dom) {
- $count_text = 0;
- $count_comm = 0;
- $count_elem = 0;
- $count_tag_end = 0;
- $count_unknown = 0;
-
- foreach($dom->nodes as $n) {
- if ($n->nodetype==HDOM_TYPE_TEXT)
- ++$count_text;
- if ($n->nodetype==HDOM_TYPE_COMMENT)
- ++$count_comm;
- if ($n->nodetype==HDOM_TYPE_ELEMENT)
- ++$count_elem;
- if ($n->nodetype==HDOM_TYPE_ENDTAG)
- ++$count_tag_end;
- if ($n->nodetype==HDOM_TYPE_UNKNOWN)
- ++$count_unknown;
- }
-
- echo 'Total: '. count($dom->nodes).
- ', Text: '.$count_text.
- ', Commnet: '.$count_comm.
- ', Tag: '.$count_elem.
- ', End Tag: '.$count_tag_end.
- ', Unknown: '.$count_unknown;
- }
- function dump_my_html_tree($node, $show_attr=true, $deep=0, $last=true) {
- $count = count($node->nodes);
- if ($count>0) {
- if($last)
- echo '<li class="expandable lastExpandable"><div class="hitarea expandable-hitarea lastExpandable-hitarea"></div><<span class="tag">'.htmlspecialchars($node->tag).'</span>';
- else
- echo '<li class="expandable"><div class="hitarea expandable-hitarea"></div><<span class="tag">'.htmlspecialchars($node->tag).'</span>';
- }
- else {
- $laststr = ($last===false) ? '' : ' class="last"';
- echo '<li'.$laststr.'><<span class="tag">'.htmlspecialchars($node->tag).'</span>';
- }
- if ($show_attr) {
- foreach($node->attr as $k=>$v) {
- echo ' '.htmlspecialchars($k).'="<span class="attr">'.htmlspecialchars($node->$k).'</span>"';
- }
- }
- echo '>';
-
- if ($node->tag==='text' || $node->tag==='comment') {
- echo htmlspecialchars($node->innertext);
- return;
- }
- if ($count>0) echo "\n<ul style=\"display: none;\">\n";
- $i=0;
- foreach($node->nodes as $c) {
- $last = (++$i==$count) ? true : false;
- dump_my_html_tree($c, $show_attr, $deep+1, $last);
- }
- if ($count>0)
- echo "</ul>\n";
- //if ($count>0) echo '</<span class="attr">'.htmlspecialchars($node->tag).'</span>>';
- echo "</li>\n";
- }
- ?>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html <?=$lang?>>
- <head>
- <?
- if ($lang!='')
- echo '<meta http-equiv="content-type" content="text/html; charset=utf-8"/>';
- else if ($charset)
- echo $charset;
- else
- echo '<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>';
- ?>
- <title>Simple HTML DOM Query Test</title>
- <link rel="stylesheet" href="js/jquery.treeview.css" />
- <link rel="stylesheet" href="js/screen.css" />
- <style>
- .tag { color: blue; }
- .attr { color: #990033; }
- </style>
- <script src="js/jquery.js" type="text/javascript"></script>
- <script src="js/jquery.treeview.js" type="text/javascript"></script>
- <script type="text/javascript">
- $(document).ready(function(){
- $("#html_tree").treeview({
- control:"#sidetreecontrol",
- collapsed: true,
- prerendered: true
- });
- });
- </script>
- </head>
- <body>
- <div id="main">
- <h4>Simple HTML DOM Test</h4>
- <form name="form1" method="post" action="">
- find: <input name="query" type="text" size="60" maxlength="60" value="<?=htmlspecialchars($query)?>">
- <input type="submit" name="Submit" value="Go">
- </form>
- <br>
- HTML STAT (<?stat_dom($html);?>)<br>
- <br>
- <div id="sidetreecontrol"><a href="?#">Collapse All</a> | <a href="?#">Expand All</a></div><br>
- <ul class="treeview" id="html_tree">
- <?
- ob_start();
- foreach($target as $e)
- dump_my_html_tree($e, true);
- ob_end_flush();
- ?>
- </ul>
- </div>
-
- </body></html>
|