欢迎投稿

今日深度:

利用PHP创建由Oracle驱动的SOAP服务(1)(5)

正如您看到的那样,使用 SoapClient 类访问 SOAP 服务无论它们是否在 PHP 中实施)很简单。实际上,通过 SOAP 服务为您的书籍数据库创建一个基于 Web 的管理系统是件轻而易举的事!如下所示,与让查询接口直接与 SOAP 服务交互相比,开发这个简单查询接口的逻辑和界面明显需要更多的编码工作。

<HTML>
<HEAD><TITLE>Oracle / SOAP Example by John Coggeshall</TITLE></HEAD>
<BODY>
<?php

$client = new SoapClient("bookman.wsdl");

try {

switch(@$_GET['mode']) {

case 'title':

if(!empty($_GET['title'])) {
$isbns = $client->findBookISBNByTitle($_GET['title']);
} else {
print "<B>Error:</B> You must specify at a title fragment!BR/>";
}
break;
case 'author':

if(!empty($_GET['author'])) {
$isbns = $client->findBookISBNByAuthor($_GET['author']);
} else {
print "<B>Error:</B> You must specify the author to search!<BR/>";
}
break;
default:
$isbns = $client->listAllBooks();
}

print "<TABLE WIDTH='600'><TR><TD>ISBN</TD><TD>Author</TD>";
     print "<TD>Title</TD><TD>Price</TD></TR>";

if(!isset($isbns) || !is_array($isbns)) {

print "<TR><TD COLSPAN='4' ALIGN='CENTER'><I>No Results Available</I></TD></TR>";

} else {

foreach($isbns as $isbn) {
$details = $client->getBookByISBN($isbn);

print "<TR>";
print "<TD>{$details['ISBN']}</TD><TD>{$details['AUTHOR']}</TD>";
print "<TD>{$details['TITLE']}</TD><TD>{$details['PRICE']}</TD>";
print "</TR>";
}
}
print "</TABLE>";

} catch(SoapFault $e) {

$msg = (!$e->getMessage()) ? $e->faultstring : $e->getMessage();
print "Sorry, an error was returned: $msg<HR>";
}

?>
<TABLE>
<FORM ACTION="<?php print $_SERVER['PHP_SELF']; ?>" METHOD="GET">
<INPUT TYPE="hidden" NAME="mode" VALUE="title">
<TR><TD><B>Search By Title:</B></TD>
<TD>
<INPUT TYPE="text" NAME="title" SIZE="50" MAXLENGTH="50">
<INPUT TYPE="submit" VALUE="Search">
</TD></TR>
</FORM>
<FORM ACTION="<?php print $_SERVER['PHP_SELF']; ?>" METHOD="GET">
<INPUT TYPE="hidden" NAME="mode" VALUE="author">
<TR><TD><B>Search By Author:</B></TD>
<TD><INPUT TYPE="text" NAME="author" SIZE="50" MAXLENGTH="50">
<INPUT TYPE="submit" VALUE="Search">
</TD></TR>
</FORM>
<TR>
<TD COLSPAN='2' ALIGN='center'>
<A HREF="<?php print $_SERVER['PHP_SELF']?>">Display All Books</A>
</TD>
</TABLE>
</BODY>
</HTML>

在执行时,这将通过 PHP 驱动的 Web 服务为 Oracle 数据库提供一个难看但功能完善的界面。

结论

现在,您应该具备了所有必备知识,可以使用 Oracle 支持的数据库,并将它们与 PHP 中的 SOAP 功能相结合,以创建强大的 Web 服务。随着 Internet 的演化越来越接近神奇的 Web 2.0,这些服务构成了面向服务体系结构的重要部分,也成为了丰富的 Internet 客户端体验的一个特点。尽管我们没有涵盖 PHP 中的 SOAP 功能的每个细节,但我们只忽略了仅在很少情况下例如,不使用 WSDL 文档连接到服务)可用的那些功能。

 

  1. .Net的精髓XML和SOAP简析
  2. 浅谈SOAP


www.htsjk.Com true http://www.htsjk.com/shujukukf/17235.html NewsArticle 正如您看到的那样,使用 SoapClient 类访问 SOAP 服务无论它们是否在 PHP 中实施)很简单。实际上,通过 SOAP 服务为您的书籍数据库创建一个基于 Web 的管理...
评论暂时关闭