偶识 PHP 5 SOAP

  最近由于工作需要,要用 PHP 实现一个 Web Services。在网上搜了一圈后找到了 NUSOAP 这个东西,今晚有时间于是写代码测试一下,谁知下载的最新版 NUSOAP 在我们的 PHP 5 下面一直报 soapclient 有错,百思不得其解。排除了其它可能性之后想到——难道跟 PHP 内建的函数/类名冲突?翻出文档一查,果然!

  原来 PHP 5 已经内建了对 SOAP 的支持,这倒是勾起了我的兴趣,于是马上扔下 NUSOAP 开始研究起 PHP 5 自带的 SOAP 扩展来,下面是我查了查文档写的两个小测试程序:

Web Services 服务端(soap_server.php):

  1. <?php
  2.  function DemoEcho( $String )
  3.  {
  4.      return( strrev( $String ) );
  5.  }
  6.  
  7.  $pServer = new SoapServer( NULL, array( "uri" => "http://localhost/" ) );
  8.  
  9.  $pServer->addFunction( "DemoEcho" );
  10.  
  11.  $pServer->handle();
  12.  ?>

调用此 Web Services 的客户端(soap_client.php):

  1. <?php
  2.  $soap = new SoapClient( null, array( "location" => "http://localhost/soap_server.php", "uri" => "http://localhost/" ) );
  3.  
  4.  echo $soap->__call( "DemoEcho", array( "Hello, SOAP!" ) );
  5.  
  6.  ?>

抱着试试的态度在浏览器里输入了 localhost/soap_client.php,回车。哗!居然显示出了“!PAOS ,olleH”的结果!

这可是我第一次写 Web Services 啊!呵呵,脚本语言就是强!

Leave a Reply