PHP で SOAP 関数を使用する方法

WBOY
リリース: 2023-05-18 11:42:01
オリジナル
1529 人が閲覧しました

インターネットの発展に伴い、Web サービスの人気はますます高まり、多くの企業や組織にとってデータを交換する重要な手段となっています。 SOAP (Simple Object Access Protocol) は、Web サービスで使用できる XML ベースの通信プロトコルです。この記事では、PHPでSOAP関数を使う方法を紹介します。

1. SOAP の概要
SOAP は、Web サービス間で情報を交換するための一連のルールを定義する XML ベースのプロトコルです。 SOAP 仕様によれば、HTTP、SMTP、TCP、およびその他のプロトコルを使用して SOAP メッセージを送信できます。 SOAP メッセージの構造は次のとおりです。

<?xml version="1.0" encoding="UTF-8">
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <m:hello xmlns:m="http://example.org">
      <m:name>张三</m:name>
    </m:hello>
  </soap:Body>
</soap:Envelope>
ログイン後にコピー

このうち、<soap:Envelope> 要素は SOAP メッセージ全体をラップするために使用され、<soap:Envelope> 要素は SOAP メッセージ全体をラップするために使用されます。 soap:Body> 要素は、特定の操作リクエスト (hello

メソッドなど) をラップするために使用されます。サーバーがリクエストを正しく処理できるように、この要素に特定のパラメーターを追加できます。


2. PHP の SOAP 関数

PHP は、SOAP クライアントとサーバーの実装を簡素化する一連の SOAP 関数を提供します。一般的に使用される SOAP 関数は次のとおりです。
  1. soap_client()

    : SOAP クライアントの作成に使用されます。
  2. $soapClient = soap_client($wsdl, $options);
    ログイン後にコピー

パラメータの説明:
  • $wsdl
  • : Web サービスの WSDL (Web サービス記述言語) ファイルの URL 。
  • $options
  • (オプション): いくつかの SOAP クライアント オプションを設定できる連想配列。
  1. soap_call()

    : リモート Web サービスを呼び出すために使用されます。
  2. $result = soap_call($soapClient, $method, $params);
    ログイン後にコピー

パラメータの説明:
  • $soapClient: soap_client()
  • 関数によって作成された SOAP クライアント。
  • $method
  • : 呼び出す必要があるリモート メソッドの名前。
  • $params
  • (オプション): リモート メソッドに渡されるパラメータを含む連想配列。
  1. soap_fault()

    : SOAP 呼び出し中に発生したエラー情報を返します。
  2. if (soap_fault($result)) {
      echo "SOAP Fault: " . $result->faultcode . " " . $result->faultstring;
    } else {
      // 处理返回值
    }
    ログイン後にコピー

パラメータの説明:
  • $result: soap_call()
  • 関数の戻り値。


3. デモ アプリケーション

簡単な例を使用して、PHP の SOAP 関数を使用してリモート Web サービスにアクセスする方法を示します。

2 つの数値を加算して結果を返すリモート Web サービスがあるとします。サーバー側のコードは次のとおりです。

// add.php
$server = new soap_server;
$server->configureWSDL('add', 'http://example.org/add');

$server->register(
  'add',
  array('a' => 'xsd:int', 'b' => 'xsd:int'),
  array('result' => 'xsd:int'),
  'http://example.org/add#add'
);

function add($a, $b) {
  return $a + $b;
}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
ログイン後にコピー
上記のコードは、PHP の soap_server オブジェクトを使用して、# # という名前のサービスを公開する add という名前の Web サービスを作成します。 #add のリモート メソッド。このメソッドは 2 つの整数パラメータを受け取り、それらの合計を返します。サーバーは、PHP が提供する service メソッドを通じてクライアントのリクエストを処理します。

クライアント コードは次のとおりです。

// client.php
$wsdl = 'http://example.org/add.wsdl';
$soapClient = soap_client($wsdl);

$a = 2;
$b = 3;

$result = soap_call($soapClient, 'add', array('a' => $a, 'b' => $b));

if (soap_fault($result)) {
  echo "SOAP Fault: " . $result->faultcode . " " . $result->faultstring;
} else {
  echo "Result: " . $result;
}
ログイン後にコピー

上記のコードは、soap_client() 関数を通じて SOAP クライアントを作成し、サーバーの add# を呼び出します。 ## 方法。最後に、soap_fault() 関数を使用してエラーがあるかどうかを判断し、エラーがない場合は戻り結果を出力します。

4. まとめ

SOAP プロトコルは Web サービス間で情報をやり取りするための標準プロトコルであり、PHP が提供する SOAP 機能を利用することで、Web サービスのクライアントとサーバーを簡単に実装できます。この記事では、PHP で一般的に使用される SOAP 関数を紹介し、例を使用してリモート Web サービスにアクセスする方法を示します。この記事を読んだ読者は、PHP での SOAP プロトコルの使用と SOAP 関数についてより深く理解できるようになると思います。

以上がPHP で SOAP 関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!