我建立了一個函式,它結合了 xml_paresr_create 和所有相關函式。
<?php
function html_parse($file)
{
$array = str_split($file, 1);
$count = false;
$text = "";
$end = false;
foreach($array as $temp)
{
switch($temp)
{
case "<":
between($text);
$text = "";
$count = true;
$end = false;
break;
case ">":
if($end == true) {end_tag($text);}
else {start_tag($text);}
$text = "";
break;
case "/":
if($count == true) {$end = true;}
else {$text = $text . "/";}
break;
default:
$count = false;
$text = $text . $temp;
}
}
}
?>
輸入值是一個字串。
它會像原始的 XML 解析器一樣呼叫 `start_tag()`、`between()` 和 `end_tag()` 函式。
但它有一些不同之處:
- 它**不**會檢查程式碼。只是將值重新傳送給這三個函式,無論它們是否正確。
- 它可以處理參數。例如:從標籤 <sth b="42"> 傳送 sth b="42"
- 它可以處理特殊符號。原始的解析器有時會將第一個特殊符號出現之前的文字包裝起來。
- 支援所有編碼。如果輸入是 UTF-8,輸出也將是 UTF-8。
- 它處理字串,而不是檔案指標。
- 沒有「保留的 XML 名稱」錯誤。
- 不需要 DOCTYPE。
- 它不處理註解、備註、程式指令等。只處理標籤。
處理函式的定義如下:
<?php
function between($stuff) {}
?>
沒有其他屬性。