phpsource/파일분석2001. 7. 24. 17:41
배열구조를 보여주는 예제
HTML 문서
우선 아래와 같은 HTML 문서(파일명:sample.html)가 있다고 하지요.
[code html;gutter:false] <HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
document.write("abc");
-->
</SCRIPT>
<style>
table td { font-size:.7em; }
</style>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD>
< HTML 파서 >를 이용한 HTML 문서 분석
</TD>
</TR>
</TABLE>
</BODY>
</HTML> [/code]
HTML 문서를 분석하는 예제
아래는 위에 있는 HTML 문서를 이 함수에 의해 분석하여 생성된 배열구조를 보여주는 예제(파일명:test.php)입니다.
[code php;gutter:false] <?php

$file = "./sample.html";
$data = implode("", file($file));

include("./class.htmlparser.php"); // HTML 파서 클래스

$parser = new HtmlParser;

$parser->html_parse_into_struct($data, $vals);

var_dump($vals);

?> [/code]
예제 실행 결과
위의 코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다.
array(17) {
   [0]=>
   array(3) {
     ["tag"]=>
     string(0) ""
     ["type"]=>
     string(5) "cdata"
     ["value"]=>
     string(24) "<!--HTML_PARSER 0.0.1-->"
   }
   [1]=>
   array(4) {
     ["tag"]=>
     string(4) "HTML"
     ["type"]=>
     string(4) "open"
     ["attributes"]=>
     array(0) {
     }
     ["value"]=>
     string(1) "
     "
   }
   [2]=>
   array(4) {
     ["tag"]=>
     string(4) "HEAD"
     ["type"]=>
     string(4) "open"
     ["attributes"]=>
     array(0) {
     }
     ["value"]=>
     string(2) "
     "
   }
   [3]=>
   array(4) {
     ["tag"]=>
     string(6) "SCRIPT"
     ["type"]=>
     string(4) "open"
     ["attributes"]=>
     array(1) {
       ["language"]=>
       string(10) "JavaScript"
     }
     ["value"]=>
     string(37) "
   <!--
   document.write("abc");
   -->
   "
   }
   [4]=>
   array(3) {
     ["tag"]=>
     string(6) "SCRIPT"
     ["type"]=>
     string(5) "close"
     ["value"]=>
     string(2) "
     "
   }
   [5]=>
   array(4) {
     ["tag"]=>
     string(5) "STYLE"
     ["type"]=>
     string(4) "open"
     ["attributes"]=>
     array(0) {
     }
     ["value"]=>
     string(33) "
   table td { font-size:.7em; }
   "
   }
   [6]=>
   array(3) {
     ["tag"]=>
     string(5) "STYLE"
     ["type"]=>
     string(5) "close"
     ["value"]=>
     string(1) "
   "
   }
   [7]=>
   array(3) {
     ["tag"]=>
     string(4) "HEAD"
     ["type"]=>
     string(5) "close"
     ["value"]=>
     string(1) "
   "
   }
   [8]=>
   array(4) {
     ["tag"]=>
     string(4) "BODY"
     ["type"]=>
     string(4) "open"
     ["attributes"]=>
     array(0) {
     }
     ["value"]=>
     string(2) "
   "
   }
   [9]=>
   array(4) {
     ["tag"]=>
     string(5) "TABLE"
     ["type"]=>
     string(4) "open"
     ["attributes"]=>
     array(0) {
     }
     ["value"]=>
     string(3) "
   "
   }
   [10]=>
   array(4) {
     ["tag"]=>
     string(2) "TR"
     ["type"]=>
     string(4) "open"
     ["attributes"]=>
     array(0) {
     }
     ["value"]=>
     string(4) "
    "
   }
   [11]=>
   array(4) {
     ["tag"]=>
     string(2) "TD"
     ["type"]=>
     string(4) "open"
     ["attributes"]=>
     array(0) {
     }
     ["value"]=>
     string(46) "
   < HTML 파서 >를 이용한 HTML 문서 분석
   "
   }
   [12]=>
   array(3) {
     ["tag"]=>
     string(2) "TD"
     ["type"]=>
     string(5) "close"
     ["value"]=>
     string(3) "
   "
   }
   [13]=>
   array(3) {
     ["tag"]=>
     string(2) "TR"
     ["type"]=>
     string(5) "close"
     ["value"]=>
     string(2) "
   "
   }
   [14]=>
   array(3) {
     ["tag"]=>
     string(5) "TABLE"
     ["type"]=>
     string(5) "close"
     ["value"]=>
     string(1) "
   "
   }
   [15]=>
   array(3) {
     ["tag"]=>
     string(4) "BODY"
     ["type"]=>
     string(5) "close"
     ["value"]=>
     string(1) "
   "
   }
   [16]=>
   array(3) {
     ["tag"]=>
     string(4) "HTML"
     ["type"]=>
     string(5) "close"
     ["value"]=>
     string(0) ""
   }
}
위의 결과는 PHP4에서 실행한 결과입니다. PHP에서 제공하고 있는 var_dump() 함수의 결과가 버전에 따라 다소 다르게 나타나고 있으니 이를 염두에 두시기 바랍니다. PHP 버전 4.0 이상에서는 var_dump 함수 대신에 print_r 함수를 사용하면 좀더 보기 편할 것입니다.

'phpsource > 파일분석' 카테고리의 다른 글

{TAR 파일}1.개요  (0) 2002.09.09
{HTML 파서}5.다운로드  (0) 2001.07.24
{HTML 파서}4.배열 구조의 구성  (0) 2001.07.24
{HTML 파서}2.파서 관련 함수  (1) 2001.07.24
{HTML 파서}1.개요  (0) 2001.07.24
Posted by 방글24