科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件谈谈PHP的Web服务

谈谈PHP的Web服务

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Web服务是最酷的技术,但它最终会让大家觉得沉闷。不知道您感觉如何,每当我参加讨论web服务的演讲时,总是听到很多缩写,如REST、XML/RPC、SOAP和RSS。

作者:csdn 来源:csdn 2008年2月1日

关键字: web PHP Linux

  • 评论
  • 分享微博
  • 分享邮件
据我所知,Web服务是最酷的技术,但它最终会让大家觉得沉闷。不知道您感觉如何,每当我参加讨论web服务的演讲时,总是听到很多缩写,如REST、XML/RPC、SOAP和RSS。然后就开始打盹,梦到有个地方树上长满Krispy Kreme甜面卷。醒来时,我认识到实际上我做了很多web服务工作,并没完全用到那些毫无意义的标准程序。我看待web服务的方式非常简单,它就是web应用程序的备用接口,允许其他程序以编程语言可以理解的方式与我的应用程序通信。人们通过HTML与应用程序通信,应用程序通过XML、CSV或其他标准与我的应用程序通信。



图1能更好地解释这个理论:
图1. 传统的web应用程序与面向服务的架构(SOA)

左侧为传统的web应用程序。服务器通过HTML与web客户端通信。该服务器可以是任何技术:Java、.NET、Rails、PHP、Python或ColdFusion。右侧为相同的web应用程序。但是它除了提供HTML,还使用XML通信,因此可以与其他应用程序或RSS阅读器之类的专用服务器交流。
我经常听到人们谈论完全基于服务的应用服务器。这对于后端技术来说可能不错。但是对于普通的web应用程序,您总是希望它同时支持HTML和XML接口。拥有两种接口的一项好处在于,它强制您将业务逻辑集中到一个位置(可能是一个“中间层”),因此HTML和XML接口都可以与数据库通信并获得相同的结果。

允许web应用程序通过XML与其他程序通信的价值对您来说可能显而易见,但是对我来说并非如此,至少最初是这样。因此本文讲述一个示例,演示通过在应用程序中设置XML接口可以实现哪些功能。首先讲述简单的HTML前端,然后显示如何构建XML接口并添加各种阅读器(包括Ajax、RSS和Adobe Flex)。

文章应用程序
首先讲述的测试应用程序是数据库中有一个文章列表的程序。清单1显示了这个数据库。
清单 1. articles.sql
DROP TABLE IF EXISTS articles;
CREATE TABLE articles (
id INTEGER NOT NULL AUTO_INCREMENT,
title VARCHAR(255),
author VARCHAR(255),
description TEXT,
PRIMARY KEY( id ) );
INSERT INTO articles VALUES ( null,
'What I like about dogs', 'Megan Herrington',
'Everything that I love about dogs I learned in preschool' );
INSERT INTO articles VALUES ( null,
'Making action movies', 'Jack Herrington',
'How to script, produce and direct Hong Kong action flicks' );
INSERT INTO articles VALUES ( null,
'Super Paper Mario Tips', 'Lori Herrington',
'Everything you need to know to win at Paper Mario' );
INSERT INTO articles VALUES ( null,
'Why I bark', 'Oso Herrington',
'' );

该程序非常简单。它包含一个存储文章列表的简单表格;每篇文章都有标题、作者和描述。
清单2显示此表格的详细HTML前端。
清单2. articles.php
<html>
<head><title>Articles</title></head>
<body>
<?php
require_once( "DB.php" );
$db =& DB::Connect( 'mysql://root@localhost/articles1', array() );
if (PEAR::isError($db)) { die($db->getMessage()); }
$res = $db->query( "SELECT * FROM articles" );
$rows = array();
while( $res->fetchInto($row, DB_FETCHMODE_ASSOC) ) {
?>
<div class="title"><?php echo( $row['title'] ) ?></div>
<div class="author"><?php echo( $row['author'] ) ?></div>
<?php if ( strlen( $row['description'] ) > 0 ) { ?>
<div class="description"><?php echo( $row['description'] ) ?></div>
<?php } ?>
<br/>
<?php } ?>
</body>
</html>

如果一切工作正常并且设置了此数据库,就能在浏览器中导航到此页面时显示图2所示的页面。
 
图2. 文章页面
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章