仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 983|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计PHP 操作 XML 文件:读取、显示

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:57:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
毕业设计作品自己个人还是觉得比较满意的,尽管有些功能考虑的不全面,也没有很好的实现。   本例中的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 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
蒙在股里 该用户已被删除
5#
发表于 2015-3-7 14:17:16 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
只想知道 该用户已被删除
6#
发表于 2015-3-11 16:08:49 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
透明 该用户已被删除
7#
发表于 2015-3-15 21:37:22 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-22 05:07:04 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
分手快乐 该用户已被删除
9#
发表于 2015-3-25 03:48:31 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
海妖 该用户已被删除
10#
 楼主| 发表于 2015-3-31 16:31:39 | 只看该作者
当然这种网站的会员费就几十块钱。
小女巫 该用户已被删除
11#
发表于 2015-4-1 09:57:35 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
莫相离 该用户已被删除
12#
发表于 2015-4-16 11:11:56 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
admin 该用户已被删除
13#
发表于 2015-4-17 11:43:59 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
飘灵儿 该用户已被删除
14#
发表于 2015-4-25 10:22:56 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
若相依 该用户已被删除
15#
发表于 2015-5-3 09:42:43 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
柔情似水 该用户已被删除
16#
发表于 2015-5-6 00:53:07 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
17#
发表于 2015-5-6 11:10:53 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
飘飘悠悠 该用户已被删除
18#
发表于 2015-5-6 23:20:43 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
深爱那片海 该用户已被删除
19#
发表于 2015-6-10 22:58:47 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
变相怪杰 该用户已被删除
20#
发表于 2015-6-20 15:12:21 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 21:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表