• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用PHP&XML编制迷你搜索引擎(二)_PHP

php 搞代码 3年前 (2022-01-25) 19次浏览 已收录 0个评论

三、一个最简单的用PHP显示XML的范例

下面的程序是将解析XML并按照树形结构输出至浏览器并显示每层的元素总数。

__________________________________________________________

<?

$file = “demo.xml”;// XML文件

// 解析XML文件的函数

function xml_parse_from_file($parser, $file)

{

if(!file_exists($file))

{

die(“Can’t find file “$file”.”);

}

if(!($fp = @fopen($file, “r”)))

{

die(“Can’t open file “$file”.”);

}

while($data = fread($fp, 4096))

{

if(!xml_parse($parser, $data, feof($fp)))

{

return(false);

}

}

fclose($fp);

return(true);

本文来源gaodai.ma#com搞##代!^码@网*
搞gaodaima代码

}

function start_element($parser, $name, $attrs)

//遇到了开元素标记如就执行这一段,

//$name=a,$attrs为一个属性数组

{

global $level,$levelcount,$maxlevel;

$level += 1;

if($level>$maxlevel)$maxlevel=$level;

$levelcount[$level]+=1;

echo “

“;

for($i=1;$i<=($level-1);$i++)echo"| ";

if($level>0)echo”+—-“;

echo ““.trim($name).” “;

while ( list( $key, $val ) = each( $attrs ) ) { //显示属性

echo “$key => $val; “;

}

}

function stop_element($parser, $name)

//遇到了开元素标记如就执行这一段,

{

global $level;

$level -= 1;

}

function data($parser, $data)

{

global $level;

if(trim($data)!=””){

echo trim($data);

}

}

function showcount() //显示每一层的元素总数

{

global $maxlevel,$levelcount;

echo “

“;

for ($i=0;$i<=$maxlevel;$i++){

echo $levelcount[$i].” “;

}

}

global $level,$levelcount,$maxlevel;

$level = -1;

// 产生解析器的实例

$parser = xml_parser_create();

// 设置处理函数

xml_set_element_handler($parser, “start_element”, “stop_element”);

xml_set_character_data_handler($parser, “data”);

xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);

// 解析文件

$ret = xml_parse_from_file($parser, $file);

if(!$ret)

{

die(sprintf(“XML error: %s at line %d”,

xml_error_string(xml_get_error_code($parser)),

xml_get_current_line_number($parser)));

}

// 释放解析器

xml_parser_free($parser);

showcount();

?>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用PHP&XML编制迷你搜索引擎(二)_PHP

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址