ホームページ > バックエンド開発 > PHPチュートリアル > PHP は SOAP 拡張機能を使用して WebService メソッドを実装します。soapwebservice_PHP チュートリアル

PHP は SOAP 拡張機能を使用して WebService メソッドを実装します。soapwebservice_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:55:24
オリジナル
1035 人が閲覧しました

PHP は SOAP 拡張機能を使用して WebService、soapwebservice を実装します

この記事では、SOAP 拡張機能を使用して WebService を実装する PHP の例について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

最近、PHP プロジェクトでの外部インターフェイスの接続には WebService が関係しています。検索エンジンに関する関連記事はほとんどありません。そのほとんどは、いわゆる強力なオープン ソース ソフトウェアである NuSOAP (ダウンロード アドレス: http://sourceforge. net/projects/nusoap /)、つまり一部のクラスです。記事で説明している環境はPHP 4.3です。現在はPHP 5.2またはPHP 5.3が一般的です。最初に試してみたのですが、実行が間違っていました。NuSOAP が提供する Soapclient クラスが、PHP 5 の新しい組み込み SOAP 拡張機能を持つ SoapClient クラスと競合することがわかりました。

NuSOAP はすべての PHP 環境で使用できると主張していますが、サーバーのセキュリティ設定の影響を受けません。ただし、多くのクラスファイルを参照する必要があるため、実用的であれば、PHP 5 で追加された組み込みの SOAP 拡張機能を使用する方が良いと考えています。まずは SOAP について学びましょう:

1. SOAP と XML-PRC の比較

Web サービスの初期の頃、XML 形式のメッセージが最初に主に使用されたのは XML-RPC プロトコルでした。RPC は Remote Procedure Call の略です。 XML リモート プロシージャ コール (XML-RPC) では、クライアントは、名前、サービスを実行しているプログラム、および入力パラメータを含む特定のメッセージを送信します。

XML-RPC は、限られた種類のデータ型といくつかの単純なデータ構造のみを使用できます。このプロトコルは十分強力ではないと考えられたため、SOAP が登場しました。SOAP の元々の定義はシンプル オブジェクト アクセス プロトコルでした。その後、SOAP は単純なものではなく、オブジェクト指向言語を使用する必要がないことに徐々に誰もが気づき、現在では SOAP という名前だけが使われるようになりました。

XML-RPC には単純なデータ型セットしかありません。代わりに、SOAP は XML スキーマの継続的な進化を活用してデータ型を定義します。同時に、SOAP は XML 名前空間も利用できますが、XML-RPC では必要ありません。これにより、SOAP メッセージの先頭を任意のタイプの XML 名前空間宣言にすることができますが、その代償として、より複雑になり、システム間の非互換性が生じます。

コンピューター業界の覚醒により、人々は XML ベースの Web サービスのビジネスの可能性を発見し、企業はアイデア、意見、議論、標準化の試みを継続的に模索し始めました。かつて W3C は「Web サービス活動」という名称で成果展示会を開催することができましたが、その中には実際に SOAP を作成した XML プロトコル ワーキング グループ (XML Protocol Working Group) も含まれていました。何らかの形で SOAP に関連している、または SOAP に依存している Web サービスに関連する標準化の取り組みの数は、驚くべき程度に 2 倍に増加しています。

元々、SOAP は XML-RPC の拡張として開発されました。その主な重点は、WSDL ファイルから取得したメソッド名と変数名を使用してリモート プロシージャ呼び出しを行うことです。現在、継続的な進歩により、人々は単なる「ファイル」メソッド (基本的には SOAP エンベロープを使用して XML 形式のファイルを送信する) 以外の SOAP の使用方法を発見しました。いずれにせよ、SOAP をマスターするには、WSDL が果たす役割を理解することが基本です。

2. SOAPパケット構造の分析

SOAP メッセージは、SOAP ヘッダーと SOAP ボディを含めて SOAP エンベロープと呼ばれます。このうち、SOAPヘッダーはセキュリティ(証明書を利用してWebサービスにアクセスする)など、Webサービスの機能を拡張するためのさまざまなメッセージを簡単に挿入することができ、SOAPボディはMarshall以降の情報である特定のメッセージテキストです。

SOAP を呼び出すとき、つまり HTTP Post メッセージを URL (http://api.google.com/search/beta2 など) に送信するとき (SOAP 仕様に従って、HTTP Get メッセージもサポートされます)、呼び出しメソッド 名前は、HTTP リクエスト ヘッダーの SOAP アクションと、その後に続く SOAP エンベロープで指定されます。サーバーはリクエストを受信し、計算を実行し、返された結果を XML にマーシャリングし、HTTP を使用してクライアントに返します。

3. SOAP の簡単な例

SOAP 開発には通常 3 つのオプションがあります:

1)、PEAR 独自の SOAP 拡張機能

2)、PHP 独自の SOAP 拡張機能;
3)、NuSOAP (純粋な PHP)。

PHP 5 の新機能は、PHP の一部として提供される組み込み SOAP 拡張機能であるため、個別のパッケージをダウンロード、インストール、管理する必要はありません。これは、PHP ではなく C で書かれた最初の SOAP 実装であるため、作成者は大幅に高速であると主張しています。関連ドキュメントは、PHP マニュアル (php_soap.dll) の「関数リファレンス」セクションに含まれています。

.NET WEB サービスにアクセスするクライアントの例:

リーリー

4. 例

1) PHPを使用してSOAPサービスを作成します

soap_server.phpを作成します(仮想パス: http://localhost/php/soap/soap_server.php)

リーリー

注:

a)、数学クラスは近々公開される Web サービスです

; b) $server->addClass ではなく、$server->setClass。
2) PHP クライアントを使用して、新しく作成した SOAP サービスにアクセスします
リーリー

http://localhost/php/soap/soap_server.php?WSDL は本来、コメント行が指す wsdl 記述ファイルにアクセスするため、この WSDL ファイルを事前に生成しておく必要があります。 Javaなど他の言語の場合は動的に生成できます。 PHP に付属する SOAP 拡張機能の場合、この WSDL ファイルを事前に生成する必要があります。

可以用ZendStudio生成静态的WSDL文件,此时用到math类的phpdoc作为生成WSDL的元数据。用ZendStudio生成wsdl文件时,必须正确说明Web服务目标地址,片断如下:

...
  <service name="mathService">
    <port binding="typens:mathBinding" name="mathPort">
      <soap:address location="http://localhost/php/soap/soap_server.php"></soap:address>
    </port>
  </service>
...

ログイン後にコピー

注:调用PHP Webserver的方法必须传入命名参数。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • PHP使用SOAP调用.net的WebService数据
  • PHP使用NuSOAP调用Web服务的方法
  • PHP实现Soap通讯的方法
  • PHP中soap的用法实例
  • 重新封装zend_soap实现http连接安全认证的php代码
  • PHP XML error parsing SOAP payload on line 1
  • PHP调用.NET的WebService 简单实例
  • PHP实现WebService的简单示例和实现步骤
  • php实现webservice实例
  • php中创建和调用webservice接口示例
  • PHP调用JAVA的WebService简单实例
  • php如何调用webservice应用介绍
  • 在PHP中利用wsdl创建标准webservice的实现代码

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1117043.htmlTechArticlePHP使用SOAP扩展实现WebService的方法,soapwebservice 本文实例讲述了PHP使用SOAP扩展实现WebService的方法。分享给大家供大家参考,具体如下: 最...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート