배열구조를 보여주는 예제
HTML 문서
우선 아래와 같은 HTML 문서(파일명:sample.html)가 있다고 하지요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<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> |
HTML 문서를 분석하는 예제
아래는 위에 있는 HTML 문서를 이 함수에 의해 분석하여 생성된 배열구조를 보여주는 예제(파일명:test.php)입니다.
1 2 3 4 5 6 7 8 9 10 |
$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); |
예제 실행 결과
위의 코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
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 함수를 사용하면 좀 더 보기 편할 것입니다.