Hi,
I've been given an API to work with - it consists of sending XML data through HTTP POST and recieveing a response - however i'm not entirely sure what i should be doing here - i took the example code and adapted it slightly [see below]. Any ideas what i should be doin to get it working? Any way of integrating it into a form?
<?php
$request = construct_xml($telephone);
$response = check_availability($request);
$available = parse_response($response);
if ($available == 1) {
echo "$telephone is available\n";
}
else {
echo "$telephone is not available\n";
}
function construct_xml ($telephone) {
return <<<XML
<?xml version='1.0' encoding='utf-8' ?>
<rpc module='xDSL' method='ADSL_Availability' version='1.0'>
<auth>
<username>XXXX</username>
<password>XXXX</password>
</auth>
<cli datatype='cli'>$telephone</cli>
</rpc>
XML;
}
function check_availability ($request) {
$header .= "POST / HTTP/1.0\r\n";
$header .= "Content-Type: text/xml\r\n";
$header .= "Content-Length: " . strlen($request) . "\r\n\r\n";
$fp = fsockopen("xmlrpc.interdns.co.uk", 29567, $errno, $errstr, 30);
if ($fp) {
fputs ($fp, $header . $request);
while (!feof($fp)) {
$response .= fgets($fp, 1024);
}
fclose ($fp);
$pos = strpos($response, "\r\n\r\n");
$response = substr($response, $pos + 4);
}
return $response;
}
function parse_response ($xml) {
$xml = new SimpleXMLElement($xml);
$code = $xml->response['code'];
$text = $xml->response['text'];
if ($code != 0) {
echo "Error occurred: $text\n";
exit;
}
return $xml->availability;
}
?>
Cheers,
Jim