仓酷云

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

[学习教程] PHP网页编程之PHP的XML形式详解

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

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

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

x
也得学会了PHP。然后再学,见异思迁是最不可取的,狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起。     研讨与 php(做为如今的主流开辟言语) 5 绑缚在一同的 xml(尺度化愈来愈近了)Reader 库,它使 php(做为如今的主流开辟言语) 页面可以以高效的流形式来处置 xml(尺度化愈来愈近了) 文档。
  php(做为如今的主流开辟言语) 5 引入了新的类 xml(尺度化愈来愈近了)Reader,用于读取可扩大标志言语(Extensible Markup Language,xml(尺度化愈来愈近了))。与 Simplexml(尺度化愈来愈近了) 或文档对象模子(Document Object Model,DOM)分歧,xml(尺度化愈来愈近了)Reader 以流形式停止操作。即它从头至尾读取文档。在文档前面的内容编译完成之前,可以先处置已编译好的文档后面的内容,从而完成十分疾速、十分高效、十分节俭地利用内存。需求处置的文档越大,这个特色就更加主要。
  libxml(尺度化愈来愈近了)
  这里所说的 xml(尺度化愈来愈近了)Reader API 位于 Gnome Project 顶用于 C 和 C++ 的 libxml(尺度化愈来愈近了) 库之上。实践上 xml(尺度化愈来愈近了)Reader 只是在 libxml(尺度化愈来愈近了) 的 xml(尺度化愈来愈近了)TextReader API 之上的很薄的 php(做为如今的主流开辟言语) 层。xml(尺度化愈来愈近了)TextReader 自己是仿照 .NET 的 xml(尺度化愈来愈近了)TextReader 类和 xml(尺度化愈来愈近了)Reader 类,虽然其实不具有与这些类类似的代码。
  与 Simple API for xml(尺度化愈来愈近了) (SAX) 分歧,xml(尺度化愈来愈近了)Reader 是推解析器,而不是拉解析器。这意味着法式是可以掌握的。您将告知解析器什么时候获得下一个文档片断,而不是在解析器看到文档后告知您所看到的内容。您将恳求内容,而不是对内容停止反响。从另外一个角度来思索这个成绩:xml(尺度化愈来愈近了)Reader 是 Iterator 设计形式的完成,而不是 Observer 设计形式的完成。
  示例成绩
  先从复杂例子入手下手会商。假定正在编写 php(做为如今的主流开辟言语) 剧本,用来吸收 xml(尺度化愈来愈近了)-RPC 恳求并生成呼应。更详细一些,假定恳求如清单 1 所示。文档的根元素是 methodCall,它包括 methodName 元素和 params 元素。办法的称号是 sqrt.params 元素包括一个 param 元素,param 元素包括 double,double 的平方根是但愿失掉的值。没有利用称号空间。
  清单 1. xml(尺度化愈来愈近了)-RPC 恳求
  1. [b]以下是援用片断:
  2. [/b]<?xml(尺度化愈来愈近了) version="1.0"?>
  3. <methodCall>
  4.   <methodName>sqrt</methodName>
  5.   <params>
  6.     <param>
  7.       <value><double>36.0</double></value>
  8.     </param>
  9.   </params>
  10. </methodCall>
复制代码

  上面是 php(做为如今的主流开辟言语) 剧本需求完成的任务:
  1、反省办法名,假如不是 sqrt(它是该剧本晓得若何处置的唯一办法),则生成毛病呼应。
  2、找到参数,假如参数不存在或参数类型毛病,则生成毛病呼应。
  3、别的,盘算平方根。
  4、在表单中前往了局,如清单 2 所示。
  清单 2. xml(尺度化愈来愈近了)-RPC 呼应
  1. [b]以下是援用片断:
  2. [/b]<?xml(尺度化愈来愈近了) version="1.0"?>
  3. <methodResponse>
  4.   <params>
  5.     <param>
  6.       <value><double>6.0</double></value>
  7.     </param>
  8.   </params>
  9. </methodResponse>
复制代码

  上面咱们慢慢睁开申明。
  初始化解析器并载入文档
  第一步是创立新的解析器对象。创立操作很复杂:
  1. [b]以下是援用片断:
  2. [/b]&#36;reader = new xml(尺度化愈来愈近了)Reader();
复制代码

  接着,需求为它供应一些用于解析的数据。关于 xml(尺度化愈来愈近了)-RPC,这是超文本传输协定(Hypertext Transfer Protocol,HTTP)恳求的原始主体。然后可以将该字符串传递到读取器的 xml(尺度化愈来愈近了)() 函数:
  填充原始发送数据
  1. [b]以下是援用片断:
  2. [/b]  &#36;request = &#36;HTTP_RAW_POST_DATA;
  3.   &#36;reader->xml(尺度化愈来愈近了)(&#36;request);
复制代码

  假如发明 &#36;HTTP_RAW_POST_DATA 是空的,则将以下代码行添加到 php(做为如今的主流开辟言语).ini 文件:
  1. [b]以下是援用片断:
  2. [/b]  always_populate_raw_post_data = On
复制代码

  可以解析任何字符串,不管它是从何处获得的。例如,可所以法式中的一串文字或从当地文件读取。还可使用 open() 函数从内部 URL 载入数据。例如,上面的语句筹办解析个中一个 Atom 提纲:
  1. [b]以下是援用片断:
  2. [/b]  &#36;reader->xml(尺度化愈来愈近了)('http://www.cafeaulait.org/today.atom');
复制代码

  不管是从何处获得原始数据,如今已创立了浏览器并为解析做好筹办。
  读取文档
  read() 函数使解析器行进到下一个标志。最复杂的办法是在 while 轮回中遍历全部文档:
  1. [b]以下是援用片断:
  2. [/b]  while (&#36;reader->read()) {
  3.   // processing code goes here...
  4.   }
复制代码

  完成遍历后,封闭解析器以释放它所持有的任何资本,而且重置解析器以便用于下一个文档:
  1. [b]以下是援用片断:
  2. [/b]  &#36;reader->close();
复制代码

  在轮回外部,将解析器放置在特别节点上:元素的出发点、元素的起点、文本节点、正文等等。经由过程反省以上司性,可以发明解析器正在检查的内容:
  localName 是当地的、未带前缀的节点名。
  name 是能够的节点前缀名。关于像正文这类没着名称的节点,包含 #comment、#text、#document 等等,与 DOM 中的一样。
  namespaceURI 是节点称号空间的一致资本标识符(Uniform Resource Identifier,URI)。
  nodeType 是代表节点类型的整数 ―― 例如,2 代表属性节点,7 代表处置指令。
  prefix 是节点的称号空间前缀。
  value 是节点的下一个文本内容。
  假如节点有文本值,hasValue 值为 true;不然,值为 false.

应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^
不帅 该用户已被删除
沙发
发表于 2015-2-16 03:43:00 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
小女巫 该用户已被删除
板凳
发表于 2015-3-1 23:58:21 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
冷月葬花魂 该用户已被删除
地板
发表于 2015-3-6 04:16:24 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
乐观 该用户已被删除
5#
发表于 2015-3-12 10:55:19 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
小魔女 该用户已被删除
6#
发表于 2015-3-19 20:45:46 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
若相依 该用户已被删除
7#
发表于 2015-4-4 21:59:58 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
兰色精灵 该用户已被删除
8#
发表于 2015-4-6 21:11:24 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
若天明 该用户已被删除
9#
发表于 2015-4-10 04:28:06 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
10#
发表于 2015-4-15 21:17:06 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
山那边是海 该用户已被删除
11#
发表于 2015-4-16 10:51:58 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
第二个灵魂 该用户已被删除
12#
发表于 2015-5-1 20:44:56 | 只看该作者
当然这种网站的会员费就几十块钱。
金色的骷髅 该用户已被删除
13#
 楼主| 发表于 2015-5-3 15:54:53 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
海妖 该用户已被删除
14#
发表于 2015-6-12 11:47:56 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
飘飘悠悠 该用户已被删除
15#
发表于 2015-7-9 14:00:55 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
蒙在股里 该用户已被删除
16#
发表于 2015-7-13 04:50:40 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
分手快乐 该用户已被删除
17#
发表于 2015-7-13 18:46:19 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
只想知道 该用户已被删除
18#
发表于 2015-7-15 10:12:21 | 只看该作者
当然这种网站的会员费就几十块钱。
因胸联盟 该用户已被删除
19#
发表于 2015-7-29 02:33:10 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 13:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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