php webservice

php

2014-07-23 13:44

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' );

 

?>