배열구조를 보여주는 예제
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]
<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]
$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) ""
}
}
[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 |