Hi los,
Danke. Nochmehr beispiele und Tuts?
Nehme die Funktion PostToHost() aus dem von mir verlinkten Tutorial, verwende als Content-Type text/xml anstelle von application/x-www-form-urlencoded und übergebe als $data_to_send ein XML-Dokument, z.B.:
~~~xml
<?xml version='1.0' standalone='yes' ?>
<daten>
<variable name="foo">bar</variable>
<variable name="test">Some interesting stuff</variable>
</daten>
Überlege dir halt, wie du deine gut in XML repräsentieren kannst. Um deine Arbeit anderen Entwicklern verständlich zu machen, welche z.B. deine Schnittstellen verwenden sollen, schreibe eine [DTD](http://de.selfhtml.org/xml/dtd/index.htm) und notiere dein XML entsprechend danach.
Im empfangenden Script kommst du nun so an die Daten ran:
~~~php
// read [link:http://de2.php.net/manual/de/wrappers.php.php@title=input] data
$data = "";
$fp = fopen("php://input","r");
while(!@feof($fp)){
$data .= fgets($fp);
}
fclose($fp);
if(empty($data)) {
// Hier eine Fehlerbehandlung einfügen! z.B.:
header("Status: 406 Not Acceptable");
die("No data received!");
}
// in einem Projekt von mir folgenden hier nun noch
// Validierungen von $data mittels [link:http://de2.php.net/manual/de/function.xml-parse.php@title=xml_parse()] und
// [link:http://de2.php.net/manual/de/function.dom-domdocument-validate.php@title=DOMDocument->validate()] für letzteres ist aber
// eine DTD notwendig
// create [link:http://de2.php.net/simplexml@title=SimpleXML] Object from string
$xml_object = simplexml_load_string($data);
Vielleicht hilft dir das ja weiter, in meinem Fall ist der Client allerdings kein PHP-Script von einem anderen Server, sondern eine in C#.NET geschriebene Windows-Software, welche lokal bei dem Benutzer des Systems auf dem PC läuft.
Viele Grüße,
~ Dennis.