1,生成wsdl文件
1)建立 creat_wsdl.php
<?php
include_once('Service.php');
include_once('SoapDiscovery.class.php');//此文件网络有下载
$wsdl=new SoapDiscovery('Service','soap');//第一参数为类名,也是生成wsdl的文件名Service.wsdl,第二个参数是服务的名字可以随便写
$wsdl->getWSDL();
?>
2)建立 Service.php 这里需要一个类及方法
<?php
class Service
{
public function Hello()
{
echo 'hello good';
}
public function Add($a,$b)
{
return $a+$b;
}
}
?>
3)执行 php creat_wsdl.php 生成 Service.wsdl文件,需要注意下面是否正确
<service name=”soap”>
<documentation />
<port name=”soapPort” binding=”tns:soapBinding”><soap:address location=”http://localhost:12312/Service.php(注意这里需要修改正确的php文件)” />
</port>
</service>
4)建立 服务文件,包含方法及服务启用
<?php
class Service
{
public function Hello()
{
echo 'hello good';
}
public function Add($a,$b)
{
return $a+$b;
}
}
$server= new SoapServer( 'Service.wsdl', array('uri' => 'http://localhost:12312') );
$server->setClass('Service');//注册Service类的所有方法
$server->handle();//处理请求
?>
2,启动webservice服务 php -S localhost:12312
3,编写客户端程序并调用 client.php
<?php
ini_set('soap.wsdl_cache_enabled','0');//关闭缓存
$soap=new SoapClient('Service.wsdl', array('uri' => 'http://localhost:12312'));
echo $soap->Add(1,2);
//echo $soap->__soapCall('Add',array(1,2))//或者这样调用也可以
?>
附:关键函数说明文档:
https://www.php.net/manual/en/soapserver.soapserver.php
https://www.php.net/manual/en/soapclient.soapclient.php
版权声明:本文为u013625451原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。