rund um den Webservice
Beispiele zum Abrufen der Liga-Daten in verschiedenen Programmiersprachen
SOAP mit PHP 4 und PEAR Package
Benötigt wird hier PHP 4.3.0 oder höher.
Download des Beispiels inkl. PEAR
Die Benutztung von SOAP-Diensten gestaltet sich unter PHP in der Version 4 etwas schwieriger, da PHP 4 keine eigenen SOAP Funktionen hat. Also müssen diese mit Packages nachgerüsten werden. Als Beispiel waren NuSOAP oder das PEAR/SOAP Package zu nennen. Das PEAR Package wird einfach heruntergeladen und auf den eigenen Webspace hochgeladen. Benötigt wird aber nur der PEAR Core und das SOAP Package sowie noch 3 andere einzelne Dateien aus dem HTTP und Net Package (diese werden von SOAP benötigt). Hier kann das SOAP Package manuell heruntergeladen werden, um es auf dem Server von Hand einzufügen: http://pear.php.net Alternativ kann auch einfach nur der hier als Beispiel angehangene Teil mit dem PEAR Core und den benötigten Dateien heruntergeladen werden.
|
Es muss dann auf den Server/Webspace geladen werden und wird dann wie in der Abbildung
eingefügt, d.h. eine index.php und ein PEAR Ordner in einem Verzeichnis.
set_include_path($_SERVER['DOCUMENT_ROOT'] . '/PEAR/');
require_once('SOAP/Client.php');
Dies stellt in der index.php die erfoderlichen SOAP Funktionen/Klassen zur Verfügung.Set-include_path() kann allerdings in den Server Einstellungen gesperrt sein! Dann müssten ca. 15 Dateien editiert werden. Erklärung: Diese Funktion setzt einen Standard-Pfad für include Befehle, da in den PEAR Packages nur relative Angaben vorkommen. Sollte die Funktion gesperrt sein, können die einzelnen Packages nicht gefunden werden bzw. finden sich auch gegenseitig nicht, es müssten dann in mehreren Dateien die relativen Pfadangaben der einzelnen Packages durch absolute ersetzt werden, die mit set_include_path automatisch davor gesetzt werden würden. |
<?php set_include_path($_SERVER['DOCUMENT_ROOT'] . '/PEAR/'); require_once('SOAP/Client.php'); $wsdl=new SOAP_WSDL('http://www.OpenLigaDB.de/Webservices/Sportsdata.asmx?WSDL'); $sportsdata=$wsdl->getProxy(); $paarung=$sportsdata->GetMatchdataByGroupLeagueSaison(24,'bl1','2007'); // Jetzt sind in $paarung die Spieldaten enthalten ?>Beispielausgabe
<table align='left' width='900' border='1'bordercolor='#000000' bordercolorlight='#FFFFFF' bordercolordark='#000000'> <tr> <td align='center'>Spielbeginn</td> <td align='center'>ID</td> <td align='center'>Team 1</td> <td align='center'>Team 2</td> <td align='center' colspan='2'>Ergebnis</td> <td align='center'>Status</td> </tr> <?php for ($i=0; $i<=8; $i++) { echo "<tr>"; echo("<td align='center'>".$paarung[$i]->matchDateTime."</td>"); echo("<td align='center'>".$paarung[$i]->matchID."</td>"); echo("<td align='center'>".$paarung[$i]->nameTeam1."</td>"); echo("<td align='center'>".$paarung[$i]->nameTeam2."</td>"); echo("<td align='center'>".$paarung[$i]->pointsTeam1."</td>"); echo("<td align='center'>".$paarung[$i]->pointsTeam1."</td>"); echo("<td align='center'>".$paarung[$i]->matchIsFinished."</td>"); echo "</tr>"; } ?> </table>
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Achtung! Fehler in neustem PEAR-Package
Dieser Fehler führt dazu, dass bei Ausgabe des Beispiels nur die ersten 7 Spiele eines Spieltages ausgegeben werden. Die Durchführung dieses "Patches" ist nur nötig, wenn bei dem Beispiel nur 7 Spiele ausgegeben werden.
/PEAR/SOAP/Base.php editieren
Zeile 783
$return->{$item->name} =& $this->_decode($item);
}
} elseif (isset($return->{$item->name})) {
//$isstruct = false;
if (count(get_object_vars($return)) == 1) {
$d =& $this->_decode($item);
$return = array($return->{$item->name}, $d);
Ersetzen mit
$return->{$item->name} =& $this->_decode($item);
}
} elseif (isset($return->{$item->name})) {
//$isstruct = false;
if (count(get_object_vars($return)) == 1) {
$isstruct = false;
$d =& $this->_decode($item);
$return = array($return->{$item->name}, $d);