ช่วยหน่อยนะค่ะ จะเริ่มทำ web service ด้วย PHP แต่ไม่มีความรู้เลยด้านนี้ค่ะ
ลองศึกษา NuSOAP ดูค่ะ
Date :
2011-02-21 15:33:32
By :
ultrasiam
ขอบคุณค่ะ คุณ ultrasiam ลองไปดู NuSOAP มาแล้วค่ะ ดาวน์โหลดมาไว้แล้วด้วย แต่ก็ยังไปต่อไม่เป็นอยู่ดีค่ะ รบกวนอีกทีนะค่ะ
Date :
2011-02-21 15:47:46
By :
milkfloat
ไม่เข้าใจตรงไหนหรอคะ
จะลองยกตัวอย่างให้ดูนะ
ฐานข้อมูล
Quote: CREATE TABLE `good` (
`good_id` int(11) NOT NULL auto_increment,
`name` varchar(20) NOT NULL default '',
`detail` varchar(50) NOT NULL default '',
`picture` varchar(20) NOT NULL default '',
PRIMARY KEY (`good_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
การทำ web service จะมีอยู่ 2 ฝั่งก็คือ server กับ client มาดูฝั่ง server ก่อนนะคะ
ื
ns_server.php
require_once("nusoap.php");
//---Instance Class---//
$server = new soap_server();
$server->configureWSDL('soap', "urn:echoStringwsdl");
$server->wsdl->addComplexType(
'DataList',
'complexType',
'struct',
'all',
'',
array(
'good_id' => array('name' => 'good_id', 'type' => 'xsd:string'),
'name' => array('name' => 'name', 'type' => 'xsd:string'),
'detail' => array('name' => 'detail', 'type' => 'xsd:string'),
'picture' => array('name' => 'picture', 'type' => 'xsd:string')
)
);
$server->wsdl->addComplexType(
'DataListRs',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:DataList[]')
),
'tns:DataList'
);
$server->register('echoString', // method name
array('inputString' => 'xsd:string'), // input parameters
array('return' => 'tns:DataListRs'), // output parameters
'urn:echoStringwsdl', // namespace
'urn:echoStringwsdl#echoString', // soapaction
'rpc', // style
'encoded', // use
'Return a list of data' // documentation
);
function echoString($inputString) {
//---Connect DB---//
$host="localhost";
$username="root";
$passwd="";
$dbname="test";
$conn = mysql_pconnect($host,$username,$passwd)or die("Can't connect to Server");
mysql_select_db($dbname)or die("Can't connect to Database");
$result = mysql_query("SELECT * FROM good WHERE name like '%".$inputString."%'");
$response = array();
while ($row = mysql_fetch_assoc($result)) {
array_push($response, $row);
}
return $response;
}
// Use the request to invoke the service
$HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server->service($HTTP_RAW_POST_DATA);
ต่อไป client
ns_client.php
<?php
//---เีรียกใช้ library nusoap---//
require_once('nusoap.php');
//---สร้าง Instance Class---//
$client = new nusoap_client('http://localhost/webservice/ns_server.php', true);
//---เรียกใช้ ฟังข์ชั่น webservice---//
$result = $client->call('echoString', array('inputString' => "a"));
print_r($result);
if ($client->fault) {
echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>';
}
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}
?>
ประวัติการแก้ไข 2011-02-21 17:30:49
Date :
2011-02-21 17:30:13
By :
ultrasiam
ขอบคุณมากๆ เลยค่ะ พอได้แนวทางล่ะ
Date :
2011-02-21 18:33:54
By :
milkfloat
Wow ได้แนวทางเหมือนกันขอบคุณมากครับ
Date :
2012-02-05 14:16:50
By :
Tee-Noi
Load balance : Server 01