我创建了一个函数,它结合了 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;
}
}
}
?>
输入值是一个字符串。
它调用函数 start_tag()、between() 和 end_tag(),就像原始的 xml 解析器一样。
但它有一些区别
- 它不检查代码。只是将值重新发送到这三个函数,无论它们是否正确
- 它使用参数。例如:从标签 <sth b="42"> 发送 sth b="42"
- 它处理带变音符号的字符。原始解析器有时会在第一个变音符号出现之前包装文本。
- 处理所有编码。如果输入为 UTF-8,输出也将为 UTF-8
- 它处理字符串。而不是文件指针。
- 没有“保留的 XML 名称”错误
- 不需要 doctype
- 它不处理注释、备注、编程指令等。只处理标签
处理函数的定义是
<?php
function between($stuff) {}
?>
没有其他属性