php操作xml
操作xml-domdocument-php

php生成xml简单实例代码使用PHP DOMDocument创建动态XML文件当处理基于XML应用程序时,开发者经常需要建立XML编码数据结构。
例如,Web中基于用户输入的XML状态模板,服务器请求XML语句,以及基于运行时间参数的客户响应。
尽管XML数据结构的构建比较费时,但如果使用成熟的PHP DOM应用程序接口,一切都会变得简单明了。
本文将向你介绍PHP DOM应用程序接口的主要功能,演示如何生成一个正确的XML完整文件并将其保存到磁盘中。
∙创建文档类型声明一般而言,XML声明放在文档顶部。
在PHP中声明十分简单:只需实例化一个DOM文档类的对象并赋予它一个版本号。
查看程序清单A:代码如下:view sourceprint?<?php// create doctype$dom= new DOMDocument("1.0");// display document in browser as plain text// display document in browser as plain text// for readability purposesheader("Content-Type: text/plain");// save and display treeecho$dom->saveXML();?>请注意DOM文档对象的saveXML()方法。
稍后我再详细介绍这一方法,现在你只需要简单认识到它用于输出XML文档的当前快照到一个文件或浏览器。
在本例,为增强可读性,我已经将ASCII码文本直接输出至浏览器。
在实际应用中,可将以text/XML头文件发送到浏览器。
如在浏览器中查看输出,你可看到如下代码:view sourceprint?<?xml version="1.0"?>∙添加元素和文本节点XML真正强大的功能是来自其元素与封装的内容。
脚本语言PHP的XML应用支持

容的 D M X L O M 扩展 , 这些扩展也存在不少需要修 复的问题 , 始终处于不断修改 中, 因此未得到广泛 的使用。正因为如此 , P P 在 H 5中, M 支持部分 X L
几 乎被全 部 重新 编 写 。P P H 5的所 有 X ML扩 展 都 是基于 G O N ME项 目的 LB ML IX 2库 , 许 不 同 的 允 扩展 模块 之 间互 相操 作 , 发者 可 以在 同一 个底层 开 的库 上进 行开发 。除了继 承 S X解析 器 ,HP A P 5还 支持 遵循 W3 C标 准 的 D M 和基 于 LB S T引擎 O IX L 的 X L 同 时 还 加 入 了 P P独 有 的 S l ML ST, H i e mp X , 符合 标准 的 S A O P扩展 , 有利 于 We 务 的应 用 。 b服
器: X L 将 M 文档视 为一系列的事件。当一个 指定 事 件发 生 时 , 解析 器将调 用 开发者提 供 的相应 函数
收 到本 文 时 间 : 0 2 6年 1 0 0月 1 日 2
基金项 目: 湖南省 教育科学 十一 五规划课题 ( 编号 20X 1 ) 06 J5 资助 0
作者简 介: 李昕 , , 女 副教授 , 方向 : 研究 计算机 网络 、 电子商务 和数据库技术 。
交互 、 数据的存储与使用 。它是一整套定义语义标
记 的规则 , 这些标 记 将 文 档分 成 许 多 部件 , 对 这 并 些部件 加 以标识 。它是 当今 最热 门的技 术之一 , 已
在 IT R E N E N T世界被 广泛接受和使 用 , 为数据 成
交 换 的重要标 准 。 P P H p r x Pe rcso 超文本 预 处 理 器 ) H ( y et t rpoesr e
simplexmlelement 解析xml类方法

simplexmlelement 解析xml类方法SimpleXMLElement 是PHP 中用于解析XML 文档的类。
使用SimpleXMLElement 类可以轻松地读取、操作和输出XML 数据。
以下是使用SimpleXMLElement 类解析XML 文档的一些基本方法:1. 创建SimpleXMLElement 对象:php复制代码:$xmlString = '<root><element>Text</element></root>';$xml = new SimpleXMLElement($xmlString);2. 获取元素值:php复制代码:$value = $xml->element; // 返回"Text"3. 遍历元素:php复制代码:foreach ($xml->element as $item) {echo $item; // 输出"Text"}4. 访问属性:php复制代码:$attribute = $xml->element['attributeName']; // 获取attribute 的值5. 添加新元素:php复制代码:$newElement = $xml->addChild('newElement', 'New Value');6. 删除元素:php复制代码:unset($xml->element); // 删除element 元素7. 序列化SimpleXMLElement:php复制代码:$xmlString = $xml->asXML(); // 将SimpleXMLElement 对象转换为XML 字符串8. 获取元素的属性:假设有如下的XML:xml复制代码:<root><element attributeName="value">Text</element></root>要获取属性值,可以使用:php复制代码:$attributeValue = $xml->element['attributeName']; // 返回"value"9. 获取元素的子元素:如果XML 有如下结构:xml复制代码:<root><element>Text</element><child>Child Text</child></root>可以使用以下方法获取子元素:php复制代码:$childElement = $xml->child; // 返回"Child Text" 或访问子元素的其他属性或方法。
探析PHP中XML的应用

档进行信息统计 , H P P代码如下 : Sl i te= ¥ rv 1 ; ag [ ]
¥ l ns= ¥ mc e met e s k= ary ) r (; a
¥on— l ns= ¥oa— h r = 0 tr emet e ttlc a s ;
维普资讯
20年第2 06 期
山西电子技术
综
述
探析 P HP 中 XML的应 用
聂 丹
( 东学院信 息技 术分 院 , 辽 . 辽宁 丹 东 18 0 ) 103
摘 要: 通过 对 P 和 X ML分析 , 描述 了 P 在 We b应用 中的各种优 势和 X ML在 解决 We b实际应 用 中所
S GML和 HTML的优点 , 简单 , 但却能实 现 S ML的大部分 G
篇文章 , 同时提供 一个 A I P 来访 问所 产生树 的每 个元素 ;: _ =
是基于事件 的解析 器 , 它将 X ML文 档 视为 一系 列 的事 件 ,
的功能。它是表示 We b内容的标准, 在网页制作 中利用
计信 息 , X 将 ML文 档转 换成 其它格 式。用 P 中的 ept x a
同的标记类型指定回调函数来完成的。当解析器开始解析 X ML文档并且遇上了一个标记, 它将调用 自定义函数, 并且
在继续往下执行之前 由 自 定义 函数对特定 的标记进行 处理 。
工 具包可 以解 析 X , ML 通过 建立 自定 义 函数 , 而将 X L 从 M
放 XMI解 析 器 …。举 一 个 例子 : 先 进 行类 定 义 r i 首  ̄u e r
php xml parsing error

php xml parsing error
答案:php xml 解析错误
当你遇到PHP XML 解析错误时,可能是由于多种原因引起的。
以下是一些常见的原因和解决方案:
1. 无效的XML 格式:确保你正在解析的XML 文档是有效的,即遵循正确的语法规则。
你可以使用在线XML 验证器或编写一个简单的PHP 脚本来验证XML 格式是否正确。
2. 缺少引号:在XML 中,属性值必须用引号括起来。
如果缺少引号,会导致解析错误。
检查XML 文档中的属性值是否正确地使用了引号。
3. 命名空间问题:如果你的XML 文档使用了命名空间,确保你在解析时正确处理了命名空间。
PHP 的SimpleXML 和DOMDocument 扩展都支持命名空间。
4. 缺少XML 解析器:确保你的PHP 环境安装了SimpleXML 或DOMDocument 扩展。
你可以在PHP 配置文件(php.ini)中检查这些扩展是否已启用。
5. 编码问题:确保XML 文档的编码与PHP 解析器的编码一致。
你可以在解析之前使用mb_detect_encoding() 函数检测XML 文档的编码,并使用mb_convert_encoding() 函数进行转换。
6. 文件路径问题:确保你提供了正确的文件路径给解析器。
如果文件路径不正确或文件不存在,解析器将无法读取XML 文档并导致错误。
如果你能提供更具体的错误信息或代码示例,我可以为你提供更精确的解决方案和代码示例。
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)

php中DOMDocument简单⽤法⽰例代码(XML创建、添加、删除、修改)共分四个⽂件,分别是创建、增加、删除、修改四个功能,变量都是写死的,改⼀改⽤$_POST⽅式接收就可以⽤了//index.php 创建功能复制代码代码如下:<?php$xmlpatch = 'index.xml';$_id = '1';$_title = 'title1';$_content = 'content1';$_author = 'author1';$_sendtime = 'time1';$_htmlpatch = '1.html';$doc = new DOMDocument('1.0', 'utf-8');$doc -> formatOutput = true;$root = $doc -> createElement('root');//新建节点$index = $doc -> createElement('index');//新建节点$url = $doc -> createAttribute('url');//新建属性$patch = $doc -> createTextNode($_htmlpatch);//新建TEXT值$url -> appendChild($patch);//将$patch⽂本设为$url属性的值$id = $doc -> createAttribute('id');$newsid = $doc -> createTextNode($_id);$id -> appendChild($newsid);$title = $doc -> createAttribute('title');$newstitle = $doc -> createTextNode($_title);$title -> appendChild($newstitle);$content = $doc -> createTextNode($_content);//节点值$author = $doc -> createAttribute('author');$newsauthor = $doc -> createTextNode($_author);$author -> appendChild($newsauthor);$sendtime = $doc -> createAttribute('time');$newssendtime = $doc -> createTextNode($_sendtime);$sendtime -> appendChild($newssendtime);$index -> appendChild($id);//将$id设为index节点的属性,以下类同$index -> appendChild($title);$index -> appendChild($content);$index -> appendChild($url);$index -> appendChild($author);$index -> appendChild($sendtime);$root -> appendChild($index);//设置index为root字节点$doc -> appendChild($root);//设置root为跟节点$doc -> save($xmlpatch);//保存⽂件echo $xmlpatch . ' has create success';?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>XML操作</title></head><body></body></html>//add.php 增加功能(跟index.php⽂件差不多,主要就是加个load载⼊跟 $root = $doc -> documentElement获得跟节点复制代码代码如下:<?php$xmlpatch = 'index.xml';$_id = '2';$_title = 'title2';$_content = 'content2';$_author = 'author2';$_sendtime = 'time2';$_htmlpatch = '2.html';$doc = new DOMDocument();$doc -> formatOutput = true;if($doc -> load($xmlpatch)) {$root = $doc -> documentElement;//获得根节点(root)$index = $doc -> createElement('index');$url = $doc -> createAttribute('url');$patch = $doc -> createTextNode($_htmlpatch);$url -> appendChild($patch);$id = $doc -> createAttribute('id');$newsid = $doc -> createTextNode($_id);$id -> appendChild($newsid);$title = $doc -> createAttribute('title');$newstitle = $doc -> createTextNode($_title);$title -> appendChild($newstitle);$content = $doc -> createTextNode($_content);$author = $doc -> createAttribute('author');$newsauthor = $doc -> createTextNode($_author);$author -> appendChild($newsauthor);$sendtime = $doc -> createAttribute('time');$newssendtime = $doc -> createTextNode($_sendtime);$sendtime -> appendChild($newssendtime);$index -> appendChild($id);$index -> appendChild($title);$index -> appendChild($content);$index -> appendChild($url);$index -> appendChild($author);$index -> appendChild($sendtime);$root -> appendChild($index);$doc -> save($xmlpatch);echo $_id . ' has been added in ' . $xmlpatch;} else {echo 'xml file loaded error!';}><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>XML操作-添加</title></head><body></body></html>//edit.php 修改功能(这⾥只修改title属性值跟节点值)复制代码代码如下:<?php$xmlpatch = 'index.xml';$_id = '2';$_title = 'has been changed';$_content = 'has been changed';$doc = new DOMDocument();$doc -> formatOutput = true;if($doc -> load($xmlpatch)) {$root = $doc -> documentElement;$elm = $root -> getElementsByTagName('index');$checkexist = 0;foreach ($elm as $new) {if($new -> getAttribute('id') == $_id) {$new -> setAttribute('title', $_title);$new -> nodeValue = $_content;//修改节点值,真是太意外了,没想到跟JS⼀样直接能赋值...//$new -> removeChild($new -> nodevalue);$checkexist = 1;}}if($checkexist == 0) {echo $_id . ' is not found in ' . $xmlpatch;} else {$doc -> save($xmlpatch);echo $_id . ' has been changed';}} else {echo 'xml file loaded error!';}?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>XML操作-修改</title></head><body></body></html>//del.php 删除功能复制代码代码如下:<?php$xmlpatch = 'index.xml';$_id = '2';$doc = new DOMDocument();$doc -> formatOutput = true;if($doc -> load($xmlpatch)) {$root = $doc -> documentElement;$elm = $root -> getElementsByTagName('index');foreach ($elm as $new) {if($new -> getAttribute('id') == $_id) {if($root -> removeChild($new)) {echo $_id . ' has been deleted';} else {echo $_id . ' delete failed';}}}$doc -> save($xmlpatch);} else {echo 'xml file loaded error!';}?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>XML操作-删除</title></head><body></body></html>总结⼀下,创建跟添加主要⽤的就是create跟appendChild,create后边跟Element就是创建节点,跟Attribute就是创建属性,TextNode就是创建值,然后appendChild就是设置从属关系,这么⼀看⾮常简单。
php解析xml的四种方法(转)
php解析xml的四种⽅法(转)XML处理是开发过程中经常遇到的,PHP对其也有很丰富的⽀持,本⽂只是对其中某⼏种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument。
1。
XML Expat Parser:XML Parser使⽤Expat XML解析器。
Expat是⼀种基于事件的解析器,它把XML⽂档视为⼀系列事件。
当某个事件发⽣时,它调⽤⼀个指定的函数处理它。
Expat是⽆验证的解析器,忽略任何链接到⽂档的DTD。
但是,如果⽂档的形式不好,则会以⼀个错误消息结束。
由于它基于事件,且⽆验证,Expat具有快速并适合web应⽤程序的特性。
XML Parser的优势是性能好,因为它不是将整个xml⽂档载⼊内存后再处理,⽽是边解析边处理。
但也正因为如此,它不适合那些要对xml 结构做动态调整、或基于xml上下⽂结构做复杂操作的需求。
如果你只是要解析处理⼀个结构良好的xml⽂档,那么它可以很好的完成任务。
需要注意的是XML Parser只⽀持三种编码格式:US-ASCII, ISO-8859-1和UTF-8,如果你的xml数据是其他编码,需要先转换成以上三个之⼀。
XML Parser常⽤的解析⽅式⼤体有两种(其实就是两个函数):xml_parse_into_struct和xml_set_element_handler。
xml_parse_into_struct此⽅法是将xml数据解析到两个数组中:index数组——包含指向Value 数组中值的位置的指针value数组——包含来⾃被解析的 XML 的数据这俩数组⽂字描述起来有点⿇烦,还是看个例⼦吧(来⾃php官⽅⽂档)$simple = "<para><note>simple note</note></para>";$p = xml_parser_create();xml_parse_into_struct($p, $simple, $vals, $index);xml_parser_free($p);echo "Index array\n";print_r($index);echo "\nVals array\n";print_r($vals);输出:Index arrayArray([PARA] => Array([0] => 0[1] => 2)[NOTE] => Array([0] => 1))Vals arrayArray([0] => Array([tag] => PARA[type] => open[level] => 1)[1] => Array([tag] => NOTE[type] => complete[level] => 2[value] => simple note)[2] => Array([tag] => PARA[type] => close[level] => 1))其中index数组以标签名为key,对应的值是⼀个数组,⾥⾯包括所有此标签在value数组中的位置。
06 PHP与XML格式化操作
·426·
PHP 开发大全
[1] => SimpleXMLElement Object ( [name] => testing center [employees] => SimpleXMLElement Object ( [employee] => SimpleXMLElement Object ( [serial_no] => 110001 [name] => Helen [age] => 23 [birthday] => 1983-07-21 [salary] => 5000.00 [bonus] => 1000.00 ) ) ) ) )
在实际应用中,PHP 与 XML 的交互操作应用非常广泛。SimpleXML 组件是 PHP5 新增加的一个简 单的 XML 操作组件,与传统的 XML 组件相比,SimpleXML 组件的使用非常简单。本节将对使用 SimpleXML 组件操作 XML 的方法做一下详细介绍。
6.2.1 创建一个 SimpleXML 对象
6.1
XML 简介
XML 是“可扩展性标识语言(eXtensible Markup Language)”的缩写,是一种类似于 HTML 的标 记性语言。但是与 HTML 不同,XML 主要用于描述数据和存放数据,而 HTML 主要用于显示数据。 XML 是一种“元标记”语言,开发者可以根据自己的需要创建标记的名称。例如,下面的 XML 代 码可以用来描述一条留言。
<thread> <title>Welcome</title> <author>Simon</author> <content>Welcome to XML guestbook!!</content> </thread>
使用PHP解析xml
使用PHP解析XML文件说明:实现PHP解析XML的方法有很多种,本文通过实现一个简单的接口功能讲解PHP 操作DOM解析XML的原理和操作方法,文中涉及的代码未做调优仅供参考。
功能简介:程序需要能自动按照相应的规则,生成xml文件下载地址,并且解析远程的xml文件给视频挑选人员(在此简称为编辑,)提供可操作化web接口,编辑选择相应的视频并且编辑好视频发布名和需要发布的栏目后,程序自动生成含待发布内容的html文件供技术处理人员按照编译要求到远程服务器上下载视频。
处理流程示意图如下:利用到主要技术有php通过dom解析xml文件、php文件操作、php表单传值、phpURL 传值、jquery日历插件使用、flowplayer播放器编译使用等,在此仅介绍以下四点。
1.dom解析xml文件2.php文件操作3.jquery日历插件使用4.flowplayer播放器使用一、php利用Dom解析xml文件Php解析xml文件有多种方式,这里使用最容易上手的dom解析器。
1.1由于远端服务器生成xml文件命名规则为日期加时间方式如:http://远端xml所在服务器ip地址(以下使用*.*.*.*表示)/2011022106.xml表示2011-2-21上午生成的xml文件http:// *.*.*.*/2011022115.xml表示2011-2-21下午生成的xml文件所以php必须获得准确时间,而php下的date()函数直接获取的时间会比当前时间晚8个小时,通过时间戳格式化时间又相对比较麻烦,找了一个比较简便的方法,在php文件头部加上<?php date_default_timezone_set('PRC'); ?>这行代码定义时区为中国然后就可以使用date()函数格式化时间输出和当前时间就吻合了,开始遍写index.php代码1.2首先获得当前日期和时间判断当前时间是否小于15:00,生成远程xml的URL 地址然后交给dom去读取解析。
php xmlwriter 方法
php xmlwriter 方法PHP XMLWriter 是一个用于生成 XML 文档的类。
它提供了一种简单而灵活的方式来创建和修改 XML 文件。
使用 XMLWriter 类,我们可以轻松地创建一个 XML 文档。
首先,我们需要创建一个 XMLWriter 对象,然后使用它的方法来添加元素、属性和文本内容。
XMLWriter 类的主要方法包括:startDocument、endDocument、startElement、endElement、writeElement、writeAttribute 和writeText。
startDocument 方法用于开始一个 XML 文档,并设置其版本和编码。
endDocument 方法用于结束 XML 文档的编写。
startElement 方法用于开始一个元素节点,并设置其名称。
endElement 方法用于结束当前元素节点的编写。
writeElement 方法用于添加一个完整的元素节点,包括开始和结束标签以及文本内容。
writeAttribute 方法用于添加一个元素节点的属性。
writeText 方法用于添加元素节点的文本内容。
通过这些简单的方法,我们可以灵活地创建和修改 XML 文档。
XMLWriter 类还提供了一些其他的方法,如设置缩进、格式化输出等。
总结一下,PHP XMLWriter 类是一个非常有用的工具,可以帮助我们轻松地创建和修改 XML 文档。
它提供了简单而灵活的方法,使我们可以快速地生成符合标准的 XML 文件。
无论是生成 RSS 订阅源、配置文件还是生成复杂的数据结构,XMLWriter 都是一个强大而实用的工具。
希望本文能够帮助大家更好地理解和使用PHP XMLWriter 类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/read.php?tid=29708文件名:index.php复制代码<?class lesson{public $id;public $name;public $teacher;public $score;public $place;}function is_odd($s){#3,5,7...return(ceil($s/2)!=($s/2));}function get_begintime($s,&$stamp){//1#8:00 2#8:55 3#10:00 4#10:55 5#14:00 6#14:55 7#16:00 8#16:55 9#18:00 $h=7+$s;if(!is_odd($s)){//2,4,6,8$h--;$m="55";} else {$m="00";}if($s>=5) $h += 2;$stamp=$h*60+$m;return ("$h:$m");}function get_endtime($s,&$stamp){//1#8:00 2#8:55 3#10:00 4#10:55 5#14:00 6#14:55 7#16:00 8#16:55 9#18:00//1#8:50 2#9:45 3#10:50 4#11:45$h=7+$s;if(!is_odd($s)){//2,4,6,8$m="45";} else {$m="50";}if($s>=5) $h += 2;$stamp=$h*60+$m;return ("$h:$m");}function get_description($b,$e,$now){$ret='';if($now<=$e&&$now>=$b){$total=$e-$b;$cur=$now-$b;$percent=floor($cur/$total*10);for($i=0;$i<=10;$i++){$ret .= ($i<$percent?'●':'○');}$ret .= "<br />";if($percent<=2)$ret .= "刚刚上课,别玩哦!";else if($percent<=5)$ret .= "坚持,快上一半了!";else if($percent<=8)$ret .= "后半节课很快就会过去!";else $ret .= "马上就下课了!";$ret .= "<br />";}return($ret);}function sorting($a,$b){// echo $a['day_begin'] . " &&& " . $b['day_begin'] . "\n";if($a['day_begin']-$b['day_begin']>0)return(1);else if($a['day_begin']-$b['day_begin']<0)return(-1);elsereturn(0);}function check_wap() {return stristr($_SERVER['HTTP_VIA'],"wap")?True:False;}?><?if(!check_wap()){echo <<< HTML<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>课程表</title></head><body>HTML;} else {echo <<< WML<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN""/DTD/wml_1.1.xml"><wml><card title="课程表">欢迎使用WAP!<br />WML;}?><?/*** Now deploy the program.***/$trans_weekday=array(0=>"日",1=>"一",2=>"二",3=>"三",4=>"四",5=>"五",6=>"六"); $lessons=array();$now=time();//For Debug:// $now=mktime(9,0,0,9,27,2010);$begintime=mktime(0,0,0,9,12,2010);$scholar_week=ceil(($now-$begintime)/(7*86400));$scholar_week=$scholar_week<=0?1:$scholar_week;$nowg=$curg=getdate($now);$now_weekday=isset($_GET['wday'])?$_GET['wday']:-1;$now_stamp=$nowg['hours']*60+$nowg['minutes'];if(!isset($trans_weekday[$now_weekday])){$now_weekday=$nowg['wday'];} else {$nowg=getdate($now+86400*($now_weekday-$nowg['wday']));// $nowg['mday']+=($now_weekday)-$nowg['wday'];}echo "现在时刻:" . $curg['year'] . "-" . $curg['mon'] . "-" . $curg['mday'] . " " . $curg['hours'] . ":" . $curg['minutes'] . ":" . $curg['seconds'] . " 星期" . $trans_weekd ay[$curg['wday']] . "<br />\n";echo "正在查看:" . $nowg['year'] . "年" . $nowg['mon'] . "月" . $nowg['mday'] . "日,第$scholar_week 教学周星期" . $trans_weekday[$now_weekday] . "。
<br />\n 查看星期";for($i=0;$i<=6;$i++) echo "[<a href=\"index.php?wday=$i\">" . $trans_weekday[$i] . "</a>]";echo "[<a href=\"index.php?wday=" . $curg['wday'] . "\">今天</a>]的课表<br />";$xml=simplexml_load_file("list.xml");foreach($xml->lessons->lesson as $perlesson){if(isset($perlesson['pause'])&&$perlesson['pause']-0!=0) continue; $newlesson=new lesson();$newlesson->id=$perlesson['id'];$newlesson->name=$perlesson['name'];$newlesson->teacher=$perlesson['teacher'];$newlesson->score=isset($perlesson['score'])?$perlesson['score']:""; $newlesson->place=isset($perlesson['place'])?$perlesson['place']:"";$lessons[]=$newlesson;}$found=0;foreach($xml->schedule->day as $today)if($today['id']-$now_weekday==0){$found=1;break;}if($found){ //Which means today have class(es) to take.$found=0;$myitems=array();foreach($today->item as $myitem)$myitems[]=$myitem;usort($myitems,"sorting");//Sort today's lessons by day_begin.foreach($myitems as $myitem){$t_id=$myitem['id'];$t_week_begin=$myitem['week_begin'];$t_week_end=$myitem['week_end'];$t_week_pattern=strtolower($myitem['week_pattern']);$t_day_begin=$myitem['day_begin'];$t_day_end=$myitem['day_end'];$t_place=isset($myitem['place'])?$myitem['place']:"";$t_lesson=$myitem['lesson'];// echo $t_lesson;foreach($lessons as $perlesson){// echo $perlesson->id . "\n";if($perlesson->id-$t_lesson==0){//Thus is the right lesson.if($t_place=="") $t_place=$perlesson->place;$t_name=$perlesson->name;$t_teacher=$perlesson->teacher;if($scholar_week<=$t_week_end&&$scholar_week>=$t_week_begin){ $ok=1;switch($t_week_pattern){case "odd":if(!is_odd($scholar_week)) $ok=0;break;case "even":if(is_odd($scholar_week)) $ok=0;break;default:}if($ok){$found++;$t_bgts=$t_edts=0;$t_begintime=get_begintime($t_day_begin,$t_bgts);$t_endtime=get_endtime($t_day_end,$t_edts);$mark=($now_stamp<=$t_edts&&$now_stamp>=$t_bgts&&$now_week day==$nowg['wday']);echo "<hr />";if($mark){echo "<font color=\"#FF0000\"><b>";$descrip=get_description($t_bgts,$t_edts,$now_stamp);} else {$descrip='';}echo <<< HTML$t_begintime 到$t_endtime :<br />课程:$t_name<br />地点:$t_place<br />教师:$t_teacher<br />$descripHTML;if($mark) echo "</b></font>";}}//Printing a class now finished.}}}}if($found==0){echo <<< HTML今天您没有课。