Heim  >  Artikel  >  Backend-Entwicklung  >  Was bedeutet PHP Soap?

Was bedeutet PHP Soap?

藏色散人
藏色散人Original
2021-11-19 10:00:032256Durchsuche

Soap basiert auf XML- und HTTP-Kommunikationsprotokollen. Die Verwendung von Soap in PHP besteht darin, das Soap-Modul von PHP hinzuzufügen, dh „soap.so“ zu php.ini hinzuzufügen.

Was bedeutet PHP Soap?

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

1 Was bedeutet PHP Soap? Was sind WSDL und warum sollten wir sie verwenden?

SOAP basiert auf XML- und HTTP-Kommunikationsprotokollen, einer Sprache, die von verschiedenen XML-Plattformen und verschiedenen Sprachen unterstützt wird. http wird von allen Internetbrowsern und Servern unterstützt.

WSDL bezieht sich auf die Web Services Description Language, ein in XML geschriebenes Dokument. Dieses Dokument beschreibt einen Webdienst. Es gibt den Standort des Dienstes und die von diesem Dienst bereitgestellten Vorgänge an.

Ich arbeite in PHP, du arbeitest in Java und er arbeitet in .net. Was ist, wenn wir drei kommunizieren und Daten austauschen möchten? Wir brauchen ein Werkzeug, das mit uns allen kommunizieren kann. Soap und WSDL wurden erstellt, damit Anwendungen, die auf verschiedenen Betriebssystemen laufen und unterschiedliche Technologien und Programmiersprachen verwenden, miteinander kommunizieren können.

2. Beispiel

Wenn PHP Soap verwenden möchte, besteht die übliche Methode darin, das Soap-Modul von PHP hinzuzufügen und Soap.so in php.ini hinzuzufügen. Das Folgende ist ein Beispiel für das Nicht-Hinzufügen der Soap.so-Datei . Die Methode zum Implementieren von Soap

//包函nusoap.php
require_once('./lib/nusoap.php');
//创建服务端
$server=newsoap_server;
//定义客户端调用方法
$server->register('hello');
//调用方法以及参数
functionhello($name) {
return'Hello, '.$name;
}
$HTTP_RAW_POST_DATA= isset($HTTP_RAW_POST_DATA) ?$HTTP_RAW_POST_DATA:'';
$server->service($HTTP_RAW_POST_DATA);
?>

p

nusoap ist eine in PHP geschriebene Funktionsdatei. Es gibt viele davon im Internet, also suchen Sie selbst danach.

1 Dieses Beispiel ist unabhängig davon, ob es sich um den Client oder den Server handelt, in PHP geschrieben. Sie können versuchen, es in mehreren Sprachen zu schreiben, um es zu testen. Unabhängig davon, ob Sie PHP-Module oder Nusoap verwenden, werde ich hier nicht näher auf die spezifischen Methoden eingehen, sie stehen alle im Handbuch.

SOAP muss hier nicht vorgestellt werden. Hier ist nur ein einfaches Beispiel für die Implementierung von SOAP. Schauen wir uns den Code an. Soap ist in Server und Client unterteilt. Schauen Sie sich zuerst den Server-Kurzcode an:

Dies ist der serverseitige Code: server.php

//包函nusoap.php
require_once('./lib/nusoap.php');
//新建一个soap客户端,调用服务端提供的wsdl
//$client = new soapclient('http://localhost/test/hellowsdl2.php?wsdl', true);
$client=newsoapclient('http://localhost/test/helloworld2.php');
//查看一下是不是报错
$err=$client->getError();
if($err) {
//显示错误
echo'
Constructor error
'.$err.'
';
}
//调用服务端的方法
$result=$client->call('hello',array('person'=>"this is a test"));
echo'
Result
';
print_r($result);
echo'
';
?>

Dann verwenden Sie den clientseitigen Code zum Aufrufen der serverseitige Code: client Der Code ist auch sehr einfach: wie folgt:

Dies ist der Client-Code client.php

//包函nusoap.php
require_once('./lib/nusoap.php');
//新建一个soap服务
$server=newsoap_server();
//初始化支持wsdl
$server->configureWSDL('hellowsdl2','urn:hellowsdl2');
//定义数据结构来接收数据
$server->wsdl->addComplexType(
'Person',
'complexType',
'struct',
'all',
'',
array(
'firstname'=>array('name'=>'firstname','type'=>'xsd:string'),//后面的type定义数据的类型,这个是string
'age'=>array('name'=>'age','type'=>'xsd:int'),//后面的type定义数据的类型,这个是int
'gender'=>array('name'=>'gender','type'=>'xsd:string')//后面的type定义数据的类型,这个是string
)
);
$server->wsdl->addComplexType(
'SweepstakesGreeting',
'complexType',
'struct',
'all',
'',
array(
'greeting'=>array('name'=>'greeting','type'=>'xsd:string'),
'winner'=>array('name'=>'winner','type'=>'xsd:string')
)
);
//服务器定义的soap调用方法
$server->register('hello',// 方法名字hello,方法就在下面
array('person'=>'tns:Person'),// 客户端传来的变量
array('return'=>'tns:SweepstakesGreeting'),//返回参数
'urn:hellowsdl2',// soap名
'urn:hellowsdl2#hello',// soap的方法名
'rpc',// 使用的方式
'encoded',// 编码
'test'// 存档
);
//定义上面注册过的函数hello
functionhello($person) {
$greeting='Hello, '.$person['firstname'].'. It is nice to meet a '.$person['age'].' year old '.$person['gender'].'.';
$winner='Scott';
//要返回的数据
returnarray(
'greeting'=>$greeting,
'winner'=>$winner
);
}
// 请求时(试图)调用服务
$HTTP_RAW_POST_DATA= isset($HTTP_RAW_POST_DATA) ?$HTTP_RAW_POST_DATA:'';
$server->service($HTTP_RAW_POST_DATA);
?>

ok, es ist vorbei!

Empfohlenes Lernen: „

PHP Video Tutorial

Das obige ist der detaillierte Inhalt vonWas bedeutet PHP Soap?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn