仓酷云

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

[学习教程] PHP网站制作之PHP与XML联合的网站编程

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-3 23:39:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
把例子全部敲进去试验,完成一遍以后就会有心得了,因为你会发现为啥我的程序和书上的一模一样就是结果不正确。新手学习的时候必须承认,不容易,因为我也是过来人,你会发现原来有那么多常用的语句,函数都要记。     1、弁言
  HTML复杂易学又通用,普通的PHP法式就是嵌入在HTML言语当中完成的。然而跟着WEB愈来愈普遍的使用,HTML的弱点也愈来愈分明了。XML的呈现,填补了这些缺乏,它供应了一个可以处置互联网上全体数据的通用办法。
  2、HTML的局限性剖析
  1、 HTML的可扩大性差。固然作为普通的使用,HTML应经够用了,然而在处置数学和化学等符号时,HTML有分明的弱点,并且它没法停止扩大,如许使它的开展收到了极大的限制。
  2、 链路丧失后不克不及主动改正。因为Web页面的URL地址常常改动,而在改动URL地址时必需手工修正这些信息,不然就会碰到“404URL地址未找到”的信息,这大大减轻了Web页面的保护任务量。
  3、 数据搜刮的工夫长。因为HTML次要用来对网页的显示停止掌握,招致了统一个数据在分歧的网页中有分歧的存储格局,如许在停止数据搜刮时就没法疾速找到所需的材料。
  4、 HTML对双字节或多国文字的撑持不敷。例如中文信息页面在分歧的平台下会呈现没法显示等成绩。
  恰是因为这些弱点,人们研讨了可以取代HTML的Web页面制造言语。个中已投入利用的有:可扩大标志言语XML、层叠款式表(CSS)和静态HTML(DHTML)等。
  3、XML的构成
  这里扼要罗列几种次要的XML手艺:
  1、 DTD(文档类型声明)
  DTD的次要功效是界说XML的内容形式;限制XML标志的数据局限;界说属性的数据类型。但因为它不是用XML编写的,因而扩大性对照差;并且只供应了无限的几种数据类型,因而它的感化是无限的。
  2、 XML Schema
  XML Schema的感化和DTD相似。但分歧的是,Schema文件所描写的是援用它的XML文件中的元素和属性的详细类型。别的,因为它是由XML编写的,Schema和DTD比拟较还有以下长处:
  ·XML Schema内容模子是开放的,可以随便扩大,而DTD没法解析扩大的内容。
  ·DTD只能把内容类型界说为一个字符串,而XML Schema答应把内容类型界说为整型、浮点型、布尔型或很多其它的复杂数据类型。
  ·XML Schema使用Namespaces将文档*****殊的节点与Schema相接洽,一个XML文件可以有多个对应的Schema,而一个XML文件只能有一个DTD。
  3、 XLink
  作为一种Web言语,XML的链接才能长短常主要的。XML的链接和定址机制包含XLink、XPath和XPointer。XLink供应功效壮大的链接办法,可以在文档之间创立单向或多向的庞杂联合关系,还有正文链接、概要链接、扩大链接集等多种链接功效。XPath在XSLT和XPointer 中利用,撑持在XML文档中相对节点和节点集的定位。XPointer在XPath的基本上供应对XML文档的内容的外部布局(如一个字符串或选择的一个段落)的定位。XML的链接才能比HTML有了很大的加强。
  4、 CSS与XSL
  XML的一大特色就是内容与格局分别,也就是说,XML文档中其实不包括若何显示/暗示文档的信息。CSS与XSL(XML Style Language)处理了XML文档的显示成绩。
  CSS(层叠款式表)也能够用在HTML和XML中。XSL完整利用XML的语法,功效比CSS要壮大很多。
  5、 DOM
  文档对象模子(DOM)是一个与平台、言语有关的法式接口,它供应了静态会见和更新文档的内容、布局与作风的手腕。可以对文看成进一步的处置,并将处置的了局更新到暗示页面。
  DOM的方针就是为XML和HTML界说一个尺度的编程接口,它包含中心、HTML和XML三局部。DOM的中心局部创立了一套底层的对象集,它们可以暗示任何布局化的文档。HTML和XML供应了高层的接口,可以作为更便利的文档视图。DOM标准由对象和办法构成。法式员利用它们可以更轻易地对特定类型的文档停止会见和操作。
  6、 Namespaces
  Namespaces是用URL加以区分的、在XML文件的元素和属性中呈现的一切称号的纠合。在XML中,用户可以本人界说标志和元素。因而,假如把多个XML文件兼并为一个,就极可能呈现抵触。Namespaces则处理了这个成绩。
  4、PHP对XML的撑持
  PHP对XML供应了的壮大的撑持。它利用了一个XML的“解析器”,而且为了撑持这个解析器,它供应了20(PHP4)个XML的解析函数。上面是几个最经常使用的PHP解析函数。
  1. xml_parse
  boolean xml_parse(int parser, string data, int [isFinal]);
  本函数用来解析 XML 格局的文件材料。参数 parser 为解析代码。参数 data 为解析的材料区块 (chunk)。参数 isFinal 可省略,若设为 true 则体系会主动送出最初的材料局部 (piece) 给 data 参数。若无毛病则前往 true 值。
  2. xml_parser_create
  int xml_parser_create(string [encoding]);
  本函数用来初始化一个新的 XML 解析器。参数 encoding 可省略,为 XML 利用的字符集,默许值为 ISO-8859-1,其它另有 US-ASCII、UTF-8 二种。胜利则前往 parser 代码供其它函数利用,掉败则前往 false 值。
  3. xml_set_element_handler
  boolean xml_set_element_handler(int parser, string startElementHandler, string endElementHandler);
  本函数设置装备摆设元素的标头供 xml_parse() 函数利用。参数 parser 为解析代码。参数 startElementHandler 及 endElementHandler 分离为元素入手下手与停止的标头,个中的 startElementHandler 必需包含解析代码、称号、与属性,而 endElementHandler 参数包含懂得析代码及称号二个参数。若无毛病则前往 true 值。
  4. xml_set_character_data_handler
  boolean xml_set_character_data_handler(int parser, string handler);
  本函数设置装备摆设字符材料的标头。参数 parser 为解析代码。参数 handler 包含解析代码及材料字符串等二个元素。若无毛病则前往 true 值。
  5. xml_get_error_code
  int xml_get_error_code(int parser);
  本函数可获得 XML 在处置时的毛病代码。参数 parser 为解析代码。若 parser 有错则前往 false 值,不然就前往毛病代码 (如 XML_ERROR_BINARY_ENTITY_REF .... 等等)。
  6. xml_error_string
  string xml_error_string(int code);
  本函数可获得 XML 在处置时的毛病代码。参数 code 为解析毛病代码。若无毛病前往值为代码的文字描写字符串。
  7. xml_get_current_line_number
  int xml_get_current_line_number(int parser);
  本函数用来获得今朝 XML 解析所正在处置的行号。参数 parser 为解析代码。若 parser 有错则前往 false 值,若无毛病则前往行号数字。
  8. xml_parser_free
  boolean xml_parser_free(int parser);
  本函数用来释放今朝 XML 解析所利用的内存。参数 parser 为解析代码。若没有毛病则前往 true 值,不然前往 false 值。
  5、案例解析
  以下是用PHP5完成读取一个以XML 1.0格局编写的通信录address.xml,并显示其内容的示例。详解见有存眷释。
  1.         //     //第一局部
    :几个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 "";     echo $spacer.$depth[$parser];     if ($depth[$parser]<>0)     {    echo "、";    }     echo $name."  ";     echo "";     $depth[$parser]++;     //假如
    是主标志
    就显示白色
    的程度
    线     if($depth[$parser]==2)     {    echo "  --------------------------------------------------------------------------------  ";    }    }
复制代码
<P style="TEXT-INDENT: 2em">
你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。
再见西城 该用户已被删除
19#
发表于 2015-4-13 23:02:01 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
谁可相欹 该用户已被删除
18#
发表于 2015-4-10 18:15:21 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
再现理想 该用户已被删除
17#
发表于 2015-4-10 00:53:36 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
活着的死人 该用户已被删除
16#
发表于 2015-4-9 03:36:45 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
简单生活 该用户已被删除
15#
发表于 2015-4-6 23:10:00 | 只看该作者
做为1门年轻的语言,php一直很努力。
冷月葬花魂 该用户已被删除
14#
发表于 2015-4-2 23:31:04 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
小魔女 该用户已被删除
13#
发表于 2015-3-25 20:01:07 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
老尸 该用户已被删除
12#
发表于 2015-3-25 12:38:42 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
飘灵儿 该用户已被删除
11#
发表于 2015-3-21 14:55:45 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
不帅 该用户已被删除
10#
发表于 2015-3-20 13:43:18 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
莫相离 该用户已被删除
9#
发表于 2015-3-13 05:12:04 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
透明 该用户已被删除
8#
发表于 2015-3-9 10:44:19 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
兰色精灵 该用户已被删除
7#
发表于 2015-3-8 15:58:02 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-7 06:17:00 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
只想知道 该用户已被删除
5#
发表于 2015-3-4 10:28:27 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
海妖 该用户已被删除
地板
发表于 2015-2-14 21:02:37 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
若相依 该用户已被删除
板凳
发表于 2015-2-7 18:52:15 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
admin 该用户已被删除
沙发
发表于 2015-2-4 20:35:59 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
楼主
发表于 2015-2-4 05:01:12 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-11 12:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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