海妖 发表于 2015-2-3 23:57:05

PHP网页设计PHP 操作 XML 文件:读取、显示

毕业设计作品自己个人还是觉得比较满意的,尽管有些功能考虑的不全面,也没有很好的实现。   本例中的php文件读取、显示xml文件内容

以下为php文件的内容,把该php文件和slashdot.xml放在统一个文件夹便可

<?php
$open_tags = array(
    'STORY' => '<STORY>',
    'TITLE' => '<TITLE>',
    'URL' => '<URL>',
'AUTHOR'=> '<AUTHOR>'
);
$close_tags = array(
    'STORY' => '</STORY>',
    'TITLE' => '</TITLE>',
    'URL' => '</URL>',
'AUTHOR'=> '</AUTHOR>'
);
?>

<?php
//上面就是界说函数来提取数据:

// 处置入手下手标志的属性指
// $attrs是一个多维数组,键值为属性名, 值就是该属性的值
function startElement($parser, $name, $attrs=''){
    global $open_tags, $temp, $current_tag;
    $current_tag = $name;
    if ($format = $open_tags[$name]){
    switch($name){
      case 'STORY':
      echo '新的故事: ';
      break;
      default:
      break;
    }
    }
}

// $current_tag告知咱们正在处置的标志,咱们随后会在characterData函数中利用
//
// 当碰到</STORY>标志时咱们晓得要flush一切的一时变量筹办操作下一个标志
<lt;/STORY>',
    'TITLE' => '</TITLE>',
    'URL' => '</URL>',
'AUTHOR'=> '</AUTHOR>'
);
?>

<?php
//上面就是界说函数来提取数据:

// 处置入手下手标志的属性指
// $attrs是一个多维数组,键值为属性名, 值就是该属性的值
function startElement($parser, $name, $attrs=''){
    global $open_tags, $temp, $current_tag;
    $current_tag = $name;
    if ($format = $open_tags[$name]){
    switch($name){
      case 'STORY':
      echo '新的故事: ';
      break;
      default:
      break;
    }
    }
}

// $current_tag告知咱们正在处置的标志,咱们随后会在characterData函数中利用
//
// 当碰到</STORY>标志时咱们晓得要flush一切的一时变量筹办操作下一个标志
function endElement($parser, $name, $attrs=''){
    global $close_tags, $temp, $current_tag;
    if ($format = $close_tags[$name]){
    switch($name){
      case 'STORY':
      return_page($temp);
      $temp = '';
      break;
      default:
      break;
    }
    }
}

// 传送给此函数的是元素间的数据
// 例如,对<TITLE>Title Here</TITLE>,$data就等于'Title Here'
function characterData($parser, $data){
    global $current_tag, $temp, $catID;
    switch($current_tag){
    case 'TITLE':
      $temp['title'] = $data;
      $current_tag = '';
      break;
    case 'URL':
      $temp['url'] = $data;
      $current_tag = '';
      break;
case 'AUTHOR':
   $temp['author'] = $data;
      $current_tag = '';   
    default:
      break;
    }
}
?>


<?php

function return_page(){
    global $temp;
    echo 'o <A HREF="'.$temp['url'].'">'.$temp['title'].'</A><BR>';
echo 'Author:'.$temp['author'].'<BR>';
echo '-----------------------------';
echo '<br>';
}

// 剖析的内容
$xml_file = 'slashdot.xml';

// 界说字符集,默许是UTF-8
$type = 'UTF-8';

// 创立解析器
$xml_parser = xml_parser_create($type);

// 设置解析选项
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');

// 告知PHP发明元素时要挪用甚么函数
// 这些函数同时也处置元素的属性
xml_set_element_handler($xml_parser, 'startElement','endElement');

//告知PHP对字符数据挪用甚么函数
xml_set_character_data_handler($xml_parser, 'characterData');

if (!($fp = fopen($xml_file, 'r'))) {
    die("没法翻开 $xml_file 文件停止解析!n");
}

// 经由过程轮回来解析全部文件
while ($data = fread($fp, 4096)) {
    if (!($data = utf8_encode($data))) {
      echo 'ERROR'."n";
    }
    if (!xml_parse($xml_parser, $data, feof($fp))) {
      die(sprintf( "XML error: %s at line %dnn",
      xml_error_string(xml_get_error_code($xml_parser)),
      xml_get_current_line_number($xml_parser)));
    }
}

xml_parser_free($xml_parser);

?>咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。

谁可相欹 发表于 2015-2-4 07:18:40

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

简单生活 发表于 2015-2-9 18:42:32

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

爱飞 发表于 2015-2-27 16:40:16

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

蒙在股里 发表于 2015-3-7 14:17:16

兴趣是最好的老师,百度是最好的词典。

只想知道 发表于 2015-3-11 16:08:49

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

透明 发表于 2015-3-15 21:37:22

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

金色的骷髅 发表于 2015-3-22 05:07:04

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

分手快乐 发表于 2015-3-25 03:48:31

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

海妖 发表于 2015-3-31 16:31:39

当然这种网站的会员费就几十块钱。

小女巫 发表于 2015-4-1 09:57:35

Ps:以上纯属原创,如有雷同,纯属巧合

莫相离 发表于 2015-4-16 11:11:56

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

admin 发表于 2015-4-17 11:43:59

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

飘灵儿 发表于 2015-4-25 10:22:56

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

若相依 发表于 2015-5-3 09:42:43

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

柔情似水 发表于 2015-5-6 00:53:07

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

仓酷云 发表于 2015-5-6 11:10:53

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

飘飘悠悠 发表于 2015-5-6 23:20:43

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

深爱那片海 发表于 2015-6-10 22:58:47

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

变相怪杰 发表于 2015-6-20 15:12:21

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
页: [1]
查看完整版本: PHP网页设计PHP 操作 XML 文件:读取、显示