php语言 百分网手机站

用PHP与XML联手进行网站编程(2)

时间:2020-11-11 19:10:05 php语言

用PHP与XML联手进行网站编程

  五、案例解析

  以下是用PHP5实现读取一个以XML 1.0格式编写的通讯录address.xml,并显示其内容的示例。详解见有关注释。

  <?

  //

  //第一部分:几个PHP Helper函数

  //

  /*********************************

  *从一个文件中读取XML的 *

  *内容到字符串中 *

  *********************************/

  function read_file($filename)

  {

  //读取文件

  $lines=file($filename);

  //变量$contents是存放文件内容的变量

  $contents="";

  while(list($key,$value)=each($lines))

  {

  $contents.=$value;

  }

  return $contents;

  }

  /*********************************

  *当PHP遇到一个XML的起始标记时 *

  *调用,其作用是按照一定的层次 *

  *显示出XML的标记 *

  *********************************/

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

  {

  //变量$depth存放标记的深度

  global $depth;

  //变量$spacer存放标记前所有的箭头符号

  $spacer="";

  for ($i=1;$i<$depth[$parser];$i++)

  {

  $spacer.="->";

  }

  //设置标记显示时的颜色

  if($depth[$parser]==0)

  {

  $font_color="red";

  }

  else

  if($depth[$parser]==1)

  {

  $font_color="green";

  }

  else

  {

  $font_color="blue";

  }

  //设置标记显示时的字体

  $font_size=5-$depth[$parser];

  if ($font_size<2)

  {

  $font_size=2;

  }

  //显示标记

  echo "<font size=".$font_size." color=".$font_color.">";

  echo $spacer.$depth[$parser];

  if ($depth[$parser]<>0)

  {

  echo "、";

  }

  echo $name."<BR>";

  echo "</font>";

  $depth[$parser]++;

  //如果是主标记就显示红色的水平线

  if($depth[$parser]==2)

  {

  echo "<hr color=red size=1>";

  }

  }

  /*********************************

  *当PHP遇到一个XML的结束标记时 *