php web服务的价值


左侧为传统的web应用程序。服务器通过html与web客户端通信。该服务器可以是任何技术:java、.net、rails、php、python或coldfusion。右侧为相同的web应用程序。但是它除了提供html,还使用xml通信,因此可以与其他应用程序或rss阅读器之类的专用服务器交流。

首先讲述的测试应用程序是数据库中有一个文章列表的程序。清单1显示了这个数据库。

该程序非常简单。它包含一个存储文章列表的简单表格;每篇文章都有标题、作者和描述。

如果一切工作正常并且设置了此数据库,就能在浏览器中导航到此页面时显示图2所示的页面。

提供xml接口的一个主要原因是人们不必编写清单3所示的代码。

是的,它获得了数据,但是不能获得这些元素的id,因为html没有id。

因此,为了避免屏幕截取问题,并制作一些炫酷的程序来使用我们的数据,我将对表格编写一个xml接口,如清单5所示。

我使用了php中的xml文档对象模型(document object model,dom)功能,而不是手动编写标记。这样dom将为我处理所有xml节点平衡和编码工作。这是确保页面返回的xm总是有效的简便方式。强烈推荐使用xml dom功能来输出xml。所有主要的web语言都支持构建和导出xml dom。

上文中我展示了从html中提取数据的html和ruby代码。既然拥有了此xml服务,下面将观察获得相同数据的ruby代码片断,但是这次使用xml语言。清单7显示了xml提取代码。

这更简单。仍然能以相同的方式获得页面,但是将页面内存提供给rexml库,并使用xml功能轻松快捷地获得id、标题、作者和描述数据。此代码易于阅读、易于维护并且不会崩溃,除非xml格式发生变化,但这不太可能。

解决了本文中最难以处理的部分后,下面应该讨论有趣的事情了,比如以其他方式使用xml可以实现什么功能。

等等,我刚才是不是说最难以处理的部分已经解决了?哦,不好意思,还有另外一项。结果发现使用xml style sheet或xsl可以快速设置xml数据格式。清单9所示的代码设置web服务(从articles.php页面写入到html)所返回的xml代码的格式。

此样式表可以附加到xml输出本身,大多数浏览器将使用它将xml呈现到html以自动显示。怎么样!

清单10显示了一个基于ajax的简单表格,它呈现来自xml feed的数据。

下一代内容丰富的internet应用程序框架(如adobe flex)是基于xml产生和发展起来的。因此可以轻松使用和显示xml数据。观察清单11所示的示例flex应用程序。

我使用了仅适于本示例的xml风格。但是也可以使用标准xml格式实现,如rss。清单12中的代码以rss格式显示了相同数据库输出。

此方法的好处在于,除了可以阅读xml的任何自定义代码之外,还可以使用所有的rss工具。例如,可以在feed中指向我的firefox浏览器,就会创建可以放到工具栏并检查更新的“活动书签”,如图5所示。

希望本文能够使您以正确的角度理解应用程序的web服务。我知道并没有讲述所有rest、xml/rpc或soap基础知识。有很多文章讨论过这些技术,多年以来,技术人员已经历过很多基于标准的噩梦。相反,我希望展示从应用程序中获得xml数据并以实用的方式使用它是件多么轻松的事情。如果我成功了,请写信告知我并展示从您的应用程序中提取的xml数据。也许我们可以使用其他web服务一起完成一个mash-up。

?rest是简单的web服务标准,用来更直接地映射到http协议。

xml/rpc是http协议之上的中间层方法调用协议,与soap相比,是略微轻量级的协议。

google的reader服务就是web浏览器或智能电话的强大、免费的rss管理器。

北京百联美达美数码科技有限公司  版权所有  京 icp 证 020026 号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值