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 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.

Baumansicht 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.
Quellcode
<?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>
Spielbeginn ID Team 1 Team 2 Ergebnis Status

2008-03-14T20:30:00

1111

FC Schalke 04

MSV Duisburg

2

2

true

2008-03-15T15:30:00

1102

VfL Bochum

VfB Stuttgart

1

1

true

2008-03-15T15:30:00

1103

Energie Cottbus

FC Bayern München

2

2

true

2008-03-15T15:30:00

1105

Hamburger SV

Borussia Dortmund

1

1

true

2008-03-15T15:30:00

1106

Hansa Rostock

Hertha BSC

0

0

true

2008-03-15T15:30:00

1107

Hannover 96

Arminia Bielefeld

2

2

true

2008-03-15T15:30:00

1108

Karlsruher SC

Eintracht Frankfurt

0

0

true

2008-03-16T17:00:00

1110

Werder Bremen

VfL Wolfsburg

0

0

true

2008-03-16T17:00:00

1104

Bayer Leverkusen

1. FC Nürnberg

4

4

true


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);