PHP企业级应用之WebService篇
来段企业级应用吧,主要是讲PHP5对webservice的一些实现(以下的程序可以被JAVA,NET,C等正常调用)<br />国内用PHP写WebService的真的很少,网上资料也没多少,公司的项目开发过程中,经历了不少这方面的东西,写出来以供大家参考(谢谢老农提供的WSDL和程序文件)<br />客户端<br /><?php<br />header ( \"Content-Type: text/html; charset=utf-8\" );<br />/*<br />* 指定WebService路径并初始化一个WebService客户端<br />*/<br />$ws = \"http://soap/soapCspMessage.php?wsdl\";<br />$client = new SoapClient ( $ws, array (\'trace\' => 1, \'uri\' => \'http://www.zxsv.com/SoapDiscovery/\' ) );<br />/*<br />* 获取SoapClient对象引用的服务所提供的所有方法<br />*/<br />echo (\"SOAP服务器提供的开放函数:\");<br />echo (\'<pre>\');<br />var_dump ( $client->__getFunctions () );<br />echo (\'</pre>\');<br />echo (\"SOAP服务器提供的Type:\");<br />echo (\'<pre>\');<br />var_dump ( $client->__getTypes () );<br />echo (\'</pre>\');<br />echo (\"执行GetGUIDNode的结果:\");<br />//$users = $client->GetUsers();<br />//var_dump($HelloWorld ); <br />$parameters = array(\'uname\'=>\'zxsv\',\"upassword\"=>\'123\');<br /> $out = $client->HelloWorld($parameters);<br /> $datadb = $out->HelloWorldResponse;<br /> var_dump($out);<br />?><br /><br />服务端<br /><?php<br />class Member<br />{<br /> public $UserId;<br /> public $Name;<br /> public function __construct($parmas){<br /> $this->UserId = $parmas;<br /> $this->Name = $parmas;<br /> }<br />}<br />$servidorSoap = new SoapServer(\'testphp.xml\',array(\'uri\' => \'http://www.TestPHP.com/\',\'encoding\'=>\'utf-8\',\'soap_version\' => SOAP_1_2 ));<br />$servidorSoap->setClass(Testphp);<br />$servidorSoap->handle();<br />class Testphp {<br /> public function HelloWorld($uid){<br /> return array(\'HelloWorldResult\'=>\"mystring\".$uid->{\'uname\'}.\' and \'.$uid->{\'upassword\'});<br /> }<br /> public function GetMember($uid){<br /> $s=array();<br /> for($i=0;$i<$uid->{\'uid\'};$i++){<br /> $s[] =&new Member(array($i, $uid->{\'uname\'}.\'我测试\'.$i));<br /> }<br /> return array(\'GetMemberResult\'=>$s);<br /> }<br />}<br />?><br /><br />到这里应该都看的懂吧<br />下面是WSDL文件<br /><?xml version=\"1.0\" encoding=\"utf-8\"?><br /><wsdl:definitions xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:tm=\"http://microsoft.com/wsdl/mime/textMatching/\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:mime=\"http://schemas.xmlsoap.org/wsdl/mime/\" xmlns:tns=\"http://www.TestPHP.com/\" xmlns:s=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://schemas.xmlsoap.org/wsdl/soap12/\" xmlns:http=\"http://schemas.xmlsoap.org/wsdl/http/\" targetNamespace=\"http://www.TestPHP.com/\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\"><br /><wsdl:types><br /> <s:schema elementFormDefault=\"qualified\" targetNamespace=\"http://www.TestPHP.com/\"><br /> <s:element name=\"HelloWorld\"><br /> <s:complexType><br /> <s:sequence><br /> <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"uname\" type=\"s:string\" /><br /> <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"upassword\" type=\"s:string\" /><br /> </s:sequence><br /> </s:complexType><br /> </s:element><br /> <s:element name=\"HelloWorldResponse\"><br /> <s:complexType><br /> <s:sequence><br /> <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"HelloWorldResult\" type=\"s:string\" /><br /> </s:sequence><br /> </s:complexType><br /> </s:element><br /> <s:element name=\"GetMember\"><br /> <s:complexType><br /> <s:sequence><br /> <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"uid\" type=\"s:int\" /><br /> <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"uname\" type=\"s:string\" /><br /> </s:sequence><br /> </s:complexType><br /> </s:element><br /> <s:element name=\"GetMemberResponse\"><br /> <s:complexType><br /> <s:sequence><br /> <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"GetMemberResult\" type=\"tns:ArrayOfMember\" /><br /> </s:sequence><br /> </s:complexType><br /> </s:element><br /> <s:complexType name=\"ArrayOfMember\"><br /> <s:sequence><br /> <s:element minOccurs=\"0\" maxOccurs=\"unbounded\" name=\"Member\" nillable=\"true\" type=\"tns:Member\" /><br /> </s:sequence><br /> </s:complexType><br /> <s:complexType name=\"Member\"><br /> <s:sequence><br /> <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"UserId\" type=\"s:int\" /><br /> <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"Name\" type=\"s:string\" /><br /> </s:sequence><br /> </s:complexType><br /> </s:schema><br /></wsdl:types><br /><wsdl:message name=\"HelloWorldSoapIn\"><br /> <wsdl:part name=\"parameters\" element=\"tns:HelloWorld\" /><br /></wsdl:message><br /><wsdl:message name=\"HelloWorldSoapOut\"><br /> <wsdl:part name=\"parameters\" element=\"tns:HelloWorldResponse\" /><br /></wsdl:message><br /><wsdl:message name=\"GetMemberSoapIn\"><br /> <wsdl:part name=\"parameters\" element=\"tns:GetMember\" /><br /></wsdl:message><br /><wsdl:message name=\"GetMemberSoapOut\"><br /> <wsdl:part name=\"parameters\" element=\"tns:GetMemberResponse\" /><br /></wsdl:message><br /><wsdl:portType name=\"TestPHPSoap\"><br /> <wsdl:operation name=\"HelloWorld\"><br /> <wsdl:input message=\"tns:HelloWorldSoapIn\" /><br /> <wsdl:output message=\"tns:HelloWorldSoapOut\" /><br /> </wsdl:operation><br /> <wsdl:operation name=\"GetMember\"><br /> <wsdl:input message=\"tns:GetMemberSoapIn\" /><br /> <wsdl:output message=\"tns:GetMemberSoapOut\" /><br /> </wsdl:operation><br /></wsdl:portType><br /><wsdl:binding name=\"TestPHPSoap\" type=\"tns:TestPHPSoap\"><br /> <soap:binding transport=\"http://schemas.xmlsoap.org/soap/http\" /><br /> <wsdl:operation name=\"HelloWorld\"><br /> <soap:operation soapAction=\"http://www.TestPHP.com/HelloWorld\" /><br /> <wsdl:input><br /> <soap:body use=\"literal\" /><br /> </wsdl:input><br /> <wsdl:output><br /> <soap:body use=\"literal\" /><br /> </wsdl:output><br /> </wsdl:operation><br /> <wsdl:operation name=\"GetMember\"><br /> <soap:operation soapAction=\"http://www.TestPHP.com/GetMember\"/><br /> <wsdl:input><br /> <soap:body use=\"literal\" /><br /> </wsdl:input><br /> <wsdl:output><br /> <soap:body use=\"literal\" /><br /> </wsdl:output><br /> </wsdl:operation><br /></wsdl:binding><br /><wsdl:binding name=\"TestPHPSoap12\" type=\"tns:TestPHPSoap\"><br /> <soap12:binding transport=\"http://schemas.xmlsoap.org/soap/http\" /><br /> <wsdl:operation name=\"HelloWorld\"><br /> <soap12:operation soapAction=\"http://www.TestPHP.com/HelloWorld\"/><br /> <wsdl:input><br /> <soap12:body use=\"literal\" /><br /> </wsdl:input><br /> <wsdl:output><br /> <soap12:body use=\"literal\" /><br /> </wsdl:output><br /> </wsdl:operation><br /> <wsdl:operation name=\"GetMember\"><br /> <soap12:operation soapAction=\"http://www.TestPHP.com/GetMember\"/><br /> <wsdl:input><br /> <soap12:body use=\"literal\" /><br /> </wsdl:input><br /> <wsdl:output><br /> <soap12:body use=\"literal\" /><br /> </wsdl:output><br /> </wsdl:operation><br /></wsdl:binding><br /><wsdl:service name=\"TestPHP\"><br /> <wsdl:port name=\"TestPHPSoap\" binding=\"tns:TestPHPSoap\"><br /> <soap:address location=\"http://soap/goodwsdl/testphp.php\" /><br /> </wsdl:port><br /> <wsdl:port name=\"TestPHPSoap12\" binding=\"tns:TestPHPSoap12\"><br /> <soap12:address location=\"http://soap/goodwsdl/testphp.php\" /><br /> </wsdl:port><br /></wsdl:service><br /></wsdl:definitions><br /><br /><br /><br /><blockquote class="blockquote">From: http://www.lantuz.com/read.php?tid=4144&page=e&newreply=1&Powered by PHPWind.com</blockquote>
页:
[1]