利用SOAP扩展开发WebService(PHP)
2010-09-08 13:26
375 查看
PHP实现WebService,它作为一种扩展存在于PHP中。php官方的SOAP扩展,优势是用c开发,相比nusoap效率上较优。
1.在默认情况下,这个扩展是没有被开启的。打开 php.ini 文件,找到;extension=php_soap.dll这行,去掉注释符“;”,保存并重启 Apache 服务。
SoapServer类和SoapClient类有两种操作模式:WSDL模式和non-WSDL模式。
在WSDL模式中,构造器可以使用WSDL文件名作为参数,并从WSDL中提取服务所使用的信息。non-WSDL模式中使用参数来传递要使用的信息。
2.服务端soapService.php:
<?php
/*
wsdl方式提供WebService
$server = new SoapServer('Calculator.wsdl');
*/
//non-wsdl方式提供WebService(指定相应的uri)
$server = new SoapServer(null,array("uri"=>"soapService.php"));
$server -> setClass("Calculator");
$server -> handle();
Class Calculator
{
/**
* Add the two figures together
* @param $num1
* @param $num2
*/
function addition($num1,$num2) {
$result = $num1+$num2;
return "{$num1} 加 {$num2} ,结果为 ".$result." !";
}
}
?>
然后利用Zend Studio将此php类文件生成WSDL文件。( 发现zend studio 7.x版没有这个功能
,又不想手动去写,盛怒之下把它给卸载了,装上了6.1.2版。)
3.客户端soapClient.php:
<?php
try {
/*
wsdl方式调用WebService(函数改动后须重新生成wsdl)
$soap = new SoapClient("http://localhost/WebService/Calculator.wsdl");
*/
//non-wsdl方式调用WebService
$soap = new SoapClient(null, array(
'location'=> "http://localhost/WebService/soapService.php",
'uri' => 'soapService.php' ) );
//两种方式调用函数
$result1 = $soap->addition ( 200, 160 );
$result2 = $soap->__soapCall ( "addition", array (50, 70 ) );
echo $result1 . "<br/>" . $result2;
}
catch ( SoapFault $e ) { echo $e->getMessage (); }
catch ( Exception $e ) { echo $e->getMessage (); }
?>
1.在默认情况下,这个扩展是没有被开启的。打开 php.ini 文件,找到;extension=php_soap.dll这行,去掉注释符“;”,保存并重启 Apache 服务。
SoapServer类和SoapClient类有两种操作模式:WSDL模式和non-WSDL模式。
在WSDL模式中,构造器可以使用WSDL文件名作为参数,并从WSDL中提取服务所使用的信息。non-WSDL模式中使用参数来传递要使用的信息。
2.服务端soapService.php:
<?php
/*
wsdl方式提供WebService
$server = new SoapServer('Calculator.wsdl');
*/
//non-wsdl方式提供WebService(指定相应的uri)
$server = new SoapServer(null,array("uri"=>"soapService.php"));
$server -> setClass("Calculator");
$server -> handle();
Class Calculator
{
/**
* Add the two figures together
* @param $num1
* @param $num2
*/
function addition($num1,$num2) {
$result = $num1+$num2;
return "{$num1} 加 {$num2} ,结果为 ".$result." !";
}
}
?>
然后利用Zend Studio将此php类文件生成WSDL文件。( 发现zend studio 7.x版没有这个功能
,又不想手动去写,盛怒之下把它给卸载了,装上了6.1.2版。)
3.客户端soapClient.php:
<?php
try {
/*
wsdl方式调用WebService(函数改动后须重新生成wsdl)
$soap = new SoapClient("http://localhost/WebService/Calculator.wsdl");
*/
//non-wsdl方式调用WebService
$soap = new SoapClient(null, array(
'location'=> "http://localhost/WebService/soapService.php",
'uri' => 'soapService.php' ) );
//两种方式调用函数
$result1 = $soap->addition ( 200, 160 );
$result2 = $soap->__soapCall ( "addition", array (50, 70 ) );
echo $result1 . "<br/>" . $result2;
}
catch ( SoapFault $e ) { echo $e->getMessage (); }
catch ( Exception $e ) { echo $e->getMessage (); }
?>
相关文章推荐
- 利用SOAP扩展开发WebService(PHP)
- 利用NuSoap开发WebService(PHP) 分类: php 2010-09-08 12:00 5832人阅读 评论(1) 收藏 举报 webservicephpsoapstringencod
- PHP利用SOAP进行webservice开发(客户端)
- php5.3中webservice利用soap—WSDL文件解析-WSDL : 描述你的Web服务(转载)
- php5.3中webservice利用soap—WSDL文件解析-WSDL : 描述你的Web服务(转载)
- 利用PHP SOAP扩展实现简单Web Services
- 利用C++开发PHP扩展
- PHP使用SOAP扩展实现WebService的方法
- 在PHP中利用wsdl创建标准webservice的实现代码 SoapDiscovery.class.php
- WebService开发(二) 如何使用Soap扩展 http://www.cnblogs.com/wayne-ivan/archive/2007/06/19/788541.html
- 利用PHP SOAP扩展实现简单Web Services
- 利用NuSoap开发WebService(PHP)
- php 利用 soap调用.Net的WebService asmx文件
- centos安装php扩展soap实现webservice
- 利用NuSoap开发WebService(PHP)
- php 如何利用 soap调用.Net的WebService asmx文件
- SOAP扩展PHP轻松实现WebService
- php 如何利用 soap调用.Net的WebService asmx文件
- 利用PHP SOAP扩展实现简单Web Services
- 利用NuSoap开发WebService(PHP)