Das PHP-Beispiel ermittelt anhand von Kundenummer [customer_id] 1234, Passwort [password] 1234 Poistleitzahl [zip] 98716, Saat [state] D und einer eindeutigen ID [locid] 98716000 alle im Umkreis [radius] von 20 Kilometer gelegenen PLZ-Ort-Kombinationen. Die Anzahl der Ergebnisse [limit] wird auf max. 100 und einer Liste von Postleitzahlen [ziplist] 98716,98693 begrenzt.
Die nusoap.php Bibliothek von Dietrich Ayala (http://dietrich.ganx4.com/nusoap/) wird benutzt um die Webservice-Funktionen zu implementieren:
<?php
// include library
require_once("nusoap.php");
// Definiert Übergabe Parameter
$ziplist = Array("98716","98693");
$options = Array(
// Maximale Anzahl zurückgelieferter Postleitzahlen
"limit" =>20,
// Offset der Trefferliste
"offset" =>5,
// Sortierkriterium(0=Entfernung,1=Postleitzahl,2=Ort)
"sort" =>0,
// Gibt an welche postleitzahlen zurück geliefert werden
"ziplist" =>$ziplist,
// ID eines Ortes in der Datenbank
"locid" =>"98716000",
// Passwort nur für den Testzugang notwendig
"password" =>"qwertz"
);
$param_in = array(
// Die Kundenidentifikationsnummer
"customer_id" =>1234,
// Postleitzahl
"zip" =>"98716",
// Suche in einem Umkreis von 20 km
"radius" =>20,
// Land Deutschland
"state" =>"D",
// Optionen
"options" =>$options
);
//Initialisiert der Server als SOAP Client.
//Der erste Parameter ist die anzusprechende Serveradresse mit
//dem zugehörigen WSDL Skript. Der zweite Parameter definiert
//das Übertragungsformat als WSDL-XML
$server=new soapclient("
http://ebaas.de/webservice/soap_server.php?wsdl",TRUE);
//Diese Variable überschreibt den in nusoap.php definierten Zeichencode
//Der Zeichencode ihres Clientservers muss dem Ihrer Webseite entsprechen
//mit der nusoap.php kann man zwischen UTF-8 und ISO-8859-1 wählen
$server->soap_defencoding = "ISO-8859-1";
//Weil die nusoap.php immer ISO-8859-1 in UTF-8 umwandelt muss
//diese Variable mit "false" überschrieben werden,
//wenn der Client UTF-8 benutzt
$server->decode_utf8 = false;
//Diese Definition unterdrückt das automatische debuggen der nusoap.php.
//Liefert das Ergebniss Array mehr als 300 Werte,
//dann wird der Overhead an Ihrem Client Servermehr als 32 MB betragen
//und in Abhängigkeit Ihrer Serverdefinition einen Abbruch erzwingen.
$server->setGlobalDebugLevel(0);
//Adressiert die ebaasDistance._showRelated Methode mit
//Input-Parameter $param_in.
$result_array = $server->call("ebaasDistance_showRelated",
array("param_in"=>$param_in));
// Wenn kein Fehler auftritt, wird das Ergebnis ausgegeben
if (!$server->fault){
echo "<table>";
for($i=0;$i<count($result_array);$i++)
{
echo "<tr>";
echo "<td>".$result_array[$i]["zip"]."</td>";
echo "<td>".$result_array[$i]["distance"]."</td>";
echo "<td>".$result_array[$i]["loc1"]."</td>";
echo "<td>".$result_array[$i]["loc2"]."</td>";
echo "</tr>";
}
echo "</table>";
}
//Wenn ein Fehler erkannt wurde können Sie folgendes ausgeben:
//Fehlernummer (dokumentiert), einen Hinweistext, SOAP-Request,
//SOAP-Responce und Debugging
else
{
echo "<h2>Error</h2>";
if ($server->fault){
echo "FAULT: code: {$server->faultcode}
";
echo "String: {$server->faultstring}
";
// Request an den SOAP-Server
echo "<pre>".htmlspecialchars($server->request,
ENT_QUOTES)."</pre>";
// Responce vom SOAP-Server
echo "<pre>".htmlspecialchars($server->response,
ENT_QUOTES)."</pre>";
// Debug
echo "<pre>" .htmlspecialchars($server->debug_str,
ENT_QUOTES)."</pre>";
}
}
?>
Bemerkungen:
Kundennummer (hier 1234) und Script-Name (hier http://ebaas.de/webservice/soap_server.php?wsdl) bekommen Sie nach Anmeldung zum Testzugang bzw. nach Kauf der Lizenz von uns per Email an die von Ihnen angegebene Adresse übermittelt.