Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。
PHP SOAP扩展可以帮助我们很轻松的实现web service服务,在PHP的SOAP扩展中主要有两种操作模式:WSDL模式和NON-WSDL模式,前者通过使用WSDL文件名作为参数,并从WSDL中提取服务所使用的信息,后者则是通过传参的方式来传递所要使用的信息。
PHPRPC 用这个也行。。
服务端:
<?php
$s=new SoapServer(null,array('uri'=>"wx.0419.cn")); //参数1 wsdl文件, 参数2 是数字 uri是命名空间
$s->addFunction('gettime'); //$s->addFunction(array("函数1", "函数2")); 可以传入多个
//$s->addFunction(SOAP_FUNCTIONS_ALL); //允许调用所有的方法
//print_r($s->getFunctions()); // 可以被调用的数组
$s->handle();
function gettime(){ return date("Y-n-j G:i:s"); }
?>
客户端:
<?
$c=new SoapClient(null,array('location'=>"http://wx.0419.cn/server.php",'uri'=>'wx.0419.cn'));
//参数1 wdsl文件 参数2 location是服务端地址 uri 是命名空间
$str=$c->gettime(); //和正常函数使用一样。。可以带参数
//var_dump($c->__getFunctions()); //打印可以用函数 不过没好使 哈哈
echo $str;
?>
----------------------------------------------------------------------------
服务端:
<?php
$s=new SoapServer(null,array('uri'=>"wx.0419.cn")); //参数1 wsdl文件, 参数2 是数字 uri是命名空间
$s->setClass('t'); //$s->setClass('t','参数1',"参数2"); 可以带默认参数
$s->handle();
class t{ function im8( $g ){ return 'OK----'. $g; } }
?>
客户端:
<?php
$ss = new SoapClient( null, array( 'uri' => 'http://abc', 'location' => 'http://wx.0419.cn/server.php' ) );
echo $ss->im8( 'gently' );
?>