xmlparser.php
来自「phpbased firewall for linux.」· PHP 代码 · 共 64 行
PHP
64 行
<?php
$XMLfeedback="";
$stack=array();
getComponent();
function getComponent() {
global $XMLfeedback;
global $stack;
$file = 'modules.xml';
function startTag($parser, $name, $attrs)
{
global $stack;
$tag=array("name"=>$name,"attrs"=>$attrs);
array_push($stack,$tag);
}
function cdata($parser, $cdata)
{
global $stack,$i;
if(trim($cdata))
{
$stack[count($stack)-1]['cdata']=$cdata;
}
}
function endTag($parser, $name)
{
global $stack;
$stack[count($stack)-2]['children'][] = $stack[count($stack)-1];
array_pop($stack);
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startTag", "endTag");
xml_set_character_data_handler($xml_parser, "cdata");
$data = xml_parse($xml_parser,file_get_contents($file));
if(!$data) {
/* die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));*/
$XMLfeedback="XML error: ".xml_error_string(xml_get_error_code($xml_parser))." at line ".xml_get_current_line_number($xml_parser);
}
xml_parser_free($xml_parser);
//return $stack;
}//get Component
function getNumber() {
global $stack;
$numberOfComponents=0;
foreach ($stack[0]["children"] as $chiaveComponenti=>$valoreComponenti){
$numberOfComponents++;
}
return $numberOfComponents;
}
function getStack() {
return $stack;
}
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?