search
HomeBackend DevelopmentPHP TutorialUse of PHP soap extension_PHP tutorial

Use of PHP soap extension_PHP tutorial

Jul 13, 2016 pm 05:50 PM
accessobjectphpprotocolsimplesoapuseobjectexpandofSimpleaccess

SOAP
1. Simple Object Access Protocol Simple Object Access Protocol
It mainly includes the following four parts:
a) SOAP encapsulation: used to encapsulate the content of the transmitted data, the sending end message, the receiving end information and the processing method to prepare for data transmission.
b) SOAP encoding rules: used to represent the data type and other information of each item in the transmitted data
c) SOAP remote procedure call protocol: a protocol for remote procedure calls and responses
d) SOAP binding protocol: the underlying protocol used to represent information exchange
Ø SOAP application and configuration in PHP5
================================================== =======================
1. PHP 5 adds a built-in SOAP extension, which we call ext/soap. It is provided as part of PHP, so there is no need to download, install and manage separate packages.
2. ext/soap may have been compiled but not loaded, so the PHP configuration needs to be updated so that ext/soap is loaded. Edit php.ini and find the Dynamic Extensions section and add a line of code here to automatically load the extension. On Windows, this line of code is: extension=php_soap.dll
If you have not previously loaded any optional extensions, you may also want to set the extension_dir directive to point to the directory containing the extension libraries (including php_soap ):
extension_dir=”C:/php/ext/” (use forward slash on Windows)
3. After completing the configuration, ext/soap displays:
[soap]
; Enables or disables WSDL caching feature.
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
soap.wsdl_cache_dir=”/tmp”
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
soap.wsdl_cache_ttl=86400
This configuration controls the WSDL caching feature of the SOAP extension. By default, WSDL description files are cached in the /tmp directory for 24 hours (86400 seconds). Set soap.wsdl_cache_enabled=0 now, otherwise you will encounter some strange behavior when developing your code. After you're done developing, remember to turn on WSDL caching to make your code run faster.
================================================== ======================
SOAP extension library (mainly includes three types of objects)
1. SoapServer: used to define functions that can be called and return response data when creating a PHP server page.
The format is: $soap = new SoapServer($wsdl, $array);
Note: $wsdl is the WSDL file used by SOAP, which is a standard format for describing WebService. Set to NULL to not use the WSDL mode. If you want to use it, you can use ZED to generate it.
$array is the attribute information of SoapServer, which is an array.
Note: $array includes a uri, and encoding, and if it is a client program, it also contains a location.
The 'uri' option is required, but its value can be filled in at will. It can be empty ("), but it cannot be null.
‘encoding’ is necessary for Chinese processing, generally fill in ‘gb2312′ (otherwise an error will occur, because the default is ‘utf-8′).
The addFunction method of this object is used to declare which function can be called by the client,
The syntax format is: $soap -> addFunction($function_name);
The handle method of this object is used to process user input and call the corresponding function, and finally returns the processed result to the client,
The syntax format is: $soap -> handle([$soap_request]);
Note: $soap_request is an optional parameter used to represent the user's request information. If not specified, it means that the server will receive all the user's requests.
2. SoapClient: used to call the SoapServer page on the remote server and implement the call to the corresponding function.
The syntax format is: $soap = new SoapClient($wsdl, $array);
Note: For soap client, the 'location' and 'uri' options are required; 'location' must be the URL of the soap server, which must be accurate, but the uri seems to be filled in casually, but it is best to be consistent with the uri in the soap server. . And 'encoding' is required for Chinese users
After creating the object, calling the function in the server page is equivalent to calling the SoapClient method
The syntax format is: $soap -> user_function($params);
Note: user_function is one or several functions defined on the server side that can be called.
3. SoapFault: used to generate errors that may occur during SOAP access.
The syntax format is: $fault = new SoapFault($faultcode, $faultstring);
Note: $faultcode is a user-defined error code. If it is not defined, it should be HTTP (in my impression). $faultstring is a user-defined error message.
This object will be automatically generated when an error occurs on the server-side page, or the user can create a SoatFault object to obtain the corresponding error information.
After capturing the SoapFault object on the client, you can obtain the error information of the error code through the following code
$fault -> faultcode; // Error code
$fault -> faultstring; // Error message

Example below:
soapserver.php

view source
print
?01. 02.
03.function reserve($arr){
04.return http_build_query($arr);
05.}
06.
07.$soap = new SoapServer(NULL,array('uri'=>'http://www.xhbin.com'));
08.
09.//为对象添加一个用户自定义的函数
10.$soap->addFunction('reserve');
11.
12.$soap->handle();
13.?>
soapclient.php

view source
print
?01. 02.
03.try{
04.
05.$client = new SoapClient(NULL,array('location'=>'http://localhost/exercise/soap/soapserver.php','uri'=>'http://www.xhbin.com'));
06.
07.$arr = array('id'=>3,"tag"=>"PHP MYSQL","search"=>"soap");
08.
09.echo $string = $client->reserve($arr);
10.
11.}catch(SoapFault $fault){
12.
13.echo "FAULT!Code:".$fault->faultcode."String:".$fault->faultstring;
14.
15.}
16.
17.?>
输出的结果为:id=3&tag=PHP+MYSQL&search=soap.
成功。。。

 

摘自 阳光司达

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478252.htmlTechArticleSOAP 1. Simple Object Access Protocol 简单对象访问协议 主要包括下面四部分: a) SOAP 封装: 用于将传输数据中的内容, 发送端消息, 接收端信息和处理...
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Explain how load balancing affects session management and how to address it.Explain how load balancing affects session management and how to address it.Apr 29, 2025 am 12:42 AM

Load balancing affects session management, but can be resolved with session replication, session stickiness, and centralized session storage. 1. Session Replication Copy session data between servers. 2. Session stickiness directs user requests to the same server. 3. Centralized session storage uses independent servers such as Redis to store session data to ensure data sharing.

Explain the concept of session locking.Explain the concept of session locking.Apr 29, 2025 am 12:39 AM

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

Are there any alternatives to PHP sessions?Are there any alternatives to PHP sessions?Apr 29, 2025 am 12:36 AM

Alternatives to PHP sessions include Cookies, Token-based Authentication, Database-based Sessions, and Redis/Memcached. 1.Cookies manage sessions by storing data on the client, which is simple but low in security. 2.Token-based Authentication uses tokens to verify users, which is highly secure but requires additional logic. 3.Database-basedSessions stores data in the database, which has good scalability but may affect performance. 4. Redis/Memcached uses distributed cache to improve performance and scalability, but requires additional matching

Define the term 'session hijacking' in the context of PHP.Define the term 'session hijacking' in the context of PHP.Apr 29, 2025 am 12:33 AM

Sessionhijacking refers to an attacker impersonating a user by obtaining the user's sessionID. Prevention methods include: 1) encrypting communication using HTTPS; 2) verifying the source of the sessionID; 3) using a secure sessionID generation algorithm; 4) regularly updating the sessionID.

What is the full form of PHP?What is the full form of PHP?Apr 28, 2025 pm 04:58 PM

The article discusses PHP, detailing its full form, main uses in web development, comparison with Python and Java, and its ease of learning for beginners.

How does PHP handle form data?How does PHP handle form data?Apr 28, 2025 pm 04:57 PM

PHP handles form data using $\_POST and $\_GET superglobals, with security ensured through validation, sanitization, and secure database interactions.

What is the difference between PHP and ASP.NET?What is the difference between PHP and ASP.NET?Apr 28, 2025 pm 04:56 PM

The article compares PHP and ASP.NET, focusing on their suitability for large-scale web applications, performance differences, and security features. Both are viable for large projects, but PHP is open-source and platform-independent, while ASP.NET,

Is PHP a case-sensitive language?Is PHP a case-sensitive language?Apr 28, 2025 pm 04:55 PM

PHP's case sensitivity varies: functions are insensitive, while variables and classes are sensitive. Best practices include consistent naming and using case-insensitive functions for comparisons.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.