ผมแนะนำ ว่าให้ลองใช้ตัว nusoap จะดีกว่านะครับ ปัจจุบันเป็นเวอร์ชั่น nusoap_0.7.2 ซึ่งหาโหลดได้จาก
http://sourceforge.net/projects/nusoap/
เมื่อโหลด nusoap ได้มาแล้ว ทีนี้ก็ดูตาม sample โคดนี้นะครับ
// สมมุติ ผมได้สร้าง web method ขึ้นมาตัวนึงดังนี้
[WebMethod]
public string HelloWorld(string str1)
{
return "Hello World "+str1;
}
//=====================================
จาก web method ที่ได้สร้างขึ้นมา จะมี method HelloWorld ซึ่งรับค่า parameter ชื่อ str1
และจากนั้นจะ return ค่ามาเป็นคำว่า Hello World + ค่าของ parameter ซึ่งเมื่อมีการเรียกใช้งาน web method ที่สร้าง ขึ้นมานี้จะคืนค่ากลับมาเป็น xml ดังนี้
// =========================================
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="
http://tempuri.org/ 
">Hello World nuijang</string>
// =========================================
คราวนี้มาดูว่าเราจะใช้ php เรียกใช้งาน web method ที่สร้างขึ้นมาจาก .Net ได้อย่างไรนะครับ
ให้เรา ดาวน์โหลด nusoap มาจาก link ด้านบน แล้วนำมาแตกไฟล์ จะได้โฟลเดอร์ lib ภายในจะมี Class ต่างๆมากมาย ให้ copy โฟรเดอร์ lib ทั้งหมด มาวางไว้ที่ root directory ใหม่
จากนั้น เขียนโคดดังนี้
<?php
require_once('nusoap_0.7.2/lib/nusoap.php'); // include ไฟล์ nusoap.php เข้ามาไว้ใน project
// สร้าง ตัวแปร object soapclient โดยจะต้องส่ง parameter 2 ตัว คือ 1. URL web service (จะต้องต่อท้ายด้วย ?WSDL ด้วยนะครับ) 2. ค่า true
$eventclient = new soapclient('
http://localhost/testwebservice/index.asmx?WSDL',true 
);
// จากนั้นดูว่า web method ที่เราสร้างขึ้นมีการส่ง parameter มาหรือเปล่า ถ้ามี จะต้อง สร้าง parameter ด้วย และ เนื่องจาก การใช้งาน nusoap ค่าที่ส่งเป็น parameter จะเป็น array เพราะฉะนั้น เราจึงต้องสร้าง parameter เป็น array ดังนี้
$params = array('str1'=>'nuijang');
// จากนั้นขั้นตอนสุดท้ายของการส่ง ค่าไปยัง web service คือการเรียกใช้ method call ของ class soapclient จาก nusoap นะครับ
//ทำการเรียกใช้งาน webservice โดย ส่ง parameter ของ method call(string $operation, [ array $params, string $namespace, string $soapAction, boolean $headers ])
// เนื่องจากค่าที่คืนมา จะเป็น Array เราจึงต้องเอาตัวแปร $data มารับค่า จาก method call
$data = $eventclient->call('HelloWorld',array('parameters' =>$params), '', '', false, true);
// และสุดท้าย ก้อคือ การนำข้อมูลมาแสดงผลนั่นเอง
foreach ($data as $value) {
echo $value ."<br>";
}
// หรือ print_r($data); // เราจะพบว่าค่า result ที่ได้กลับมาจะเป็นในรูป array ซึ่ง จะเป็นชื่อ method ที่เรียกต่อท้ายด้วย result เป็น keyword ที่จะเข้าถึงข้อมูลในตัวแปร array ดังนี้
Array ( [HelloWorldResult] => Hello World nuijang )
ทำให้เราสามารถใช้งาน บรรทัดด้านล่างนี้ เพื่อเข้าถึงข้อมูลได้เหมือนกัน
echo $data['HelloWorldResult'];
และ ผลลัพธ์ จะได้ออกมาเป็น
Hellow world nuijang
// =====================================================
จบแล้วครับ ถ้า ดาวน์โหลด nusoap มาจะมี sample ตัวอย่างการติดต่อ แบบต่างๆมาให้มากมาย ลองเล่นดูนะครับ