Wie schreibe ich eine XML Schnittstelle
Ich möchte euch hier demonstrieren wie man eine XML Schnittstelle einfach und schnell
programmiert...
Wir haben auf der einen Seite einen Script, der eine XML Anfrage an den Server schickt
und auf der anderen Seite einen Script, der die Anfrage bearbeitet.
Angenommen wir wollen 3 Funktionalitäten über XML steuern können:
ADD, UPDATE und DELETE sprich Hinzufügen, Ändern und Löschen.
Als erstes zeige ich euch wie man ein XML erzeugt und an den Server sendet:
Code
<?
function createxml($array) {
$buf = '';
foreach($array as $key => $value)
{
if(is_array($value))
{
$buf .= "<".strtolower($key).">" . createxml($value) . "</".strtolower($key).">n";
}
else{
$buf .="<".strtolower($key)."><![CDATA[$value]]></".strtolower($key).">n";
}
return $buf;
}
$aPOST["content"]["id"] = "2";
$aPOST["content"]["author_id"] = "1";
$aPOST["content"]["header"] = "Wir schreiben eine XML Api";
$aPOST["content"]["content"] = "Ich möchte euch hier Demonstrieren wie man eine
XML Schnitstelle..";
$aPOST["content"]["date"] = date("Y-m-d H:i:s");
$url = 'http://www.codejungle.org/xml-api.php';
$POST["cmd"]="ADD";
$POST["apikey"]="kmlnjierg8795th2bughj3fg02jgkm0ggi";
$POST["data"]=createxml($aPOST);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
//curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pwd);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$feedback = curl_exec($ch);
$ErrNum = curl_errno($ch);
$ErrMsg = curl_error($ch);
curl_close($ch);
echo $feedback;
?>
<?
$allowed_api_keys=array("kmlnjierg8795th2bughj3fg02jgkm0ggi");
//check if api key is valid
if(in_array($_POST[apikey], $allowed_api_keys)){
switch($_POST[cmd]){
case ADD;
$xml = simplexml_load_string($_POST[data]);
foreach($xml as $name => $value){
echo "$name => $value";
}
break;
default:
echo "Please check your provided command";
break;
}
} else {
echo "Your API - Key is invalid";
}
?>