正如您看到的那样,使用 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 文档连接到服务)可用的那些功能。
- .Net的精髓XML和SOAP简析
- 浅谈SOAP
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。