分享一个好用WEBSERVICE,可自动生成WSDL文件,
分享一个好用WEBSERVICE,可自动生成WSDL文件,
分享一个好用WEBSERVICE,可自动生成WSDL文件,
<?php
/*
//这是非标准的webservice,可能只有PHP才能访问
//SoapServer
//ryan 2013-08-13
*/
$soap = new SoapServer(null,array('uri'=>"http://127.0.0.1/"));
/*
//function //可直接定义方法
$soap->addFunction('test');
$soap->addFunction(SOAP_FUNCTIONS_ALL);
$soap->handle();
function test(){
return 'ryan';
}
*/
//class //或者定义类
$soap->setClass('soapClass');
$soap->handle();
class soapClass{
public $say='say hello';
function test() {
return $this->say;
}
}
/*
//SoapClient 调用方法和调用类的方式是一样的
$client = new SoapClient(null,array('location' =>"http://127.0.0.1/webservice/soap/server.php",'uri' => "http://127.0.0.1/"));
$data=$client->test();
echo $data
*/
3. [代码][PHP]代码 跳至 [2] [3] [全屏预览]
<?php
/*
//这是标准的webservice,适用所有语言
//SoapServer
//ryan 2013-08-13
//注意,每改变服务器端文件中类的方法,要注意删掉原有的WSDL文件,并访问一下当前文件以便生成最新的WSDL文件
*/
class ryan{//定义类
public function say(){
return "say hello";
}
public function json($arr){
//return json_encode($arr);
return $arr;
}
/*
如果要指定接收的参数类型是数组,要注意将WSDL文件里的接收参数类型设置为下
<part name="arr" type="xsd:string[]" />
同理返回参数类型如果是数组也需要更改下
*/
}
$wsdl="ryan.wsdl";
$class="ryan";
if(!file_exists($wsdl)){//如果WSDL文件不存在,调用类创建
require_once("SoapDiscovery.class.php");
$disco = new SoapDiscovery($class,$class);
$wsdlxmlstr = $disco->getWSDL();
file_put_contents($wsdl,$wsdlxmlstr);
}
//定义接口
$SoapServer = new SoapServer($wsdl);
//$SoapServer = new SoapServer("server.php?wsdl");
$SoapServer->setClass($class);
$SoapServer->handle();
/*
//SoapClient
$client = new SoapClient("http://127.0.0.1/webservice/wsdl/server.php?wsdl");
$data=$client->say();
echo $data;
*/
- 上一篇:漂亮的Matrix矩阵文字坠落效果...
- 下一篇:php缓存类
精彩图集
精彩文章






