Replaced by kumitterer/oebb_py!
Proper ÖBB API for timetables/connections
LICENSE | ||
oebbApi_v0.2.php | ||
oebbApi_v0.3.php | ||
README.md |
Dokumentation für die ÖBB Api
Allgemeines
Was brauche ich dafür?
- Einen Server, der die PHP-Files ausführen kann. Es genügt auch ein Freehoster.
- PhpQuery in der Version 0.9.5 oder höher. http://code.google.com/p/phpquery/
Was muss ich beachten?
- Der Code bzw. die API ist nicht von einem Profi, sondern von einem Lehrling im ersten Lehrjahr programmiert worden. Deswegen bitte ich um ausschließlich konstruktive Kritik.
- Es gelten die Allgemeinen Geschäftsbedingungen und die Nutzungsbedingungen von oebb.at. http://www.oebb.at/de/Nutzungsbedingungen/index.jsp
- Es wird keine Haftung übernommen! Sie sind für ihr Handeln selbst verantwortlich. Der Rechtsweg ist ausgeschlossen!
Wenn Sie etwas für einen Lehrling in ersten Lehrjahr spenden möchten, dann können Sie das über diese Links tun. :)
Station validieren - validate()
Wissenwertes
- Es ist zu beachten, dass bei einem Aufruf mehrere Stationen zurückkommen können.
- Für den weiteren Vorgang wird ausschließlich der name („value“) benötigt.
Parameter
Name | Typ | Beschreibung | Zwingend benötigt |
---|---|---|---|
name | string | Name der Station | Ja |
Rückgabewerte
Name | Typ | Beschreibung | Wird benötigt |
---|---|---|---|
value | string | Gültiger Name der Station | Ja |
id | int | IBNR | Nein |
Beispiel
<?php
header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";
$api = new oebbApi();
var_dump($api->validate("St. Pölten"));
array(1) {
[0]=>
array(2) {
["value"]=>
string(10) "ST.PÖLTEN"
["id"]=>
string(9) "001130201"
}
}
Verbindung suchen - get()
Wissenwertes
- Die Stations-Namen können leicht abgeändert eigegeben werden. Aus „St. Pölten“ wird „St.Pölten Hbf“
- Wenn die Parameter „date“, „time“ nicht verwendet oder mit NULL angegeben werden, wird automatisch das aktuelle Datum bzw. Zeit verwendet.
- Die „id“ ist für die Verwendung der Funktionen „getDetails“ und in Folge „getCoords“ essenziell.
- Wenn Sie drei Verbindungen in der Vergangenheit (relativ zur ersten Verbindung) möchten, dann verwenden Sie „earlier“ als Anfangszeit und fügen Sie zu „amount“ drei dazu. Wenn Sie drei Verbindungen weiter in der Zukunft möchten, dann lassen die Anfangszeit gleich und erhöhen Sie einfach „amount“ um 3.
Parameter
Name | Typ | Beschreibung | Zwingend benötigt |
---|---|---|---|
departure | string | Name der Abfahrtsstation | Ja |
arrival | string | Name der Ankunftsstation | Ja |
amount | int | Anzahl der Verbindungen | Ja |
Rückgabewerte
Name | Typ | Beschreibung | Wird benötigt |
---|---|---|---|
startStation | string | Name der Abfahrtsstation | Nein |
endStation | string | Name der Ankunftsstation | Nein |
startDate | string | Abfahrtsdatum, wichtig bei Nachtzügen | Nein |
endDate | string | Ankunftsdatum | Nein |
startTime | string | Abfahrtszeit | Nein |
endTime | string | Ankunftszeit | Nein |
duration | string | Fahrtdauer | Nein |
changes | int | Umstiege | Nein |
buyLink | string | Kauflink zur Verbindung | Nein |
changesLink | string | Link zur Verbindung auf oebb.at | Nein |
products | array | Alle Verkehrsmittel mit Bezeichnung und Bild | Nein |
prognose | string | BETA, Verspätungen | Nein |
id | int | Nummer der Verbindung der Anfrage | Nein |
earlier | string | Siehe oben. | Nein |
Beispiel
<?php
header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";
$api = new oebbApi();
$connections = $api->get("St. Pölten", "Linz", 1);
var_dump($connections);
array(1) {
[0]=>
array(14) {
["startStation"]=>
string(14) "St.Pölten Hbf"
["endStation"]=>
string(14) "Linz/Donau Hbf"
["startDate"]=>
string(10) "16.01.2014"
["endDate"]=>
string(10) "16.01.2014"
["startTime"]=>
string(5) "19:56"
["endTime"]=>
string(5) "20:45"
["duration"]=>
string(4) "0:49"
["changes"]=>
int(0)
["buyLink"]=>
string(127) "https://ticketing.oebb.at/inet/pub/ticket?outwardDateTime=2014-01-16T19%3A56&stationOrigEva=001130201&stationDestEva=001140101&"
["changesLink"]=>
string(347) "http://fahrplan.oebb.at/bin/query.exe/dn?ld=19&seqnr=1&ident=ed.04333180.1389897270&GO_conViewMode=outward&HWAI=CONNECTION$C0-0!id=C0-0!HwaiConId=C0-0!HwaiDetailStatus=details!HwaiMoreDetailStatus=none!HwaiAdditionalInformation=none!HwaiConnectionNumber=1!;~CONNECTION$C0-0!HwaiMapStatus=UNDEFINED!HwaiMapNumber=UNDEFINED!HwaiMapSlider=UNDEFINED!;"
["products"]=>
array(1) {
[0]=>
array(2) {
["name"]=>
string(6) "RJ 764"
["img"]=>
string(46) "http://fahrplan.oebb.at/img/vs_oebb/rj_pic.gif"
}
}
["prognose"]=>
string(0) ""
["id"]=>
int(0)
["earlier"]=>
string(5) "18:56"
}
}
Details einer Verbindung - getDetails
Wissenwertes
- Von der Funktion „getDetails“ bekommen Sie die essenziellen Infos einer spezifischen Verbindung.
- Für den Aufruf benötigen Sie lediglich die „id“ der Verbindung. Diese „id“ bekommen Sie von der Funktion „get“ zurück.
- Funktioniert nur bei einer erfolgreich ausgeführten Suche (get).
Parameter
Name | Typ | Beschreibung | Zwingend benötigt |
---|---|---|---|
id | int | Index der spezifischen Verbindung. Siehe get | Ja |
Rückgabewerte
Array | Name | Typ | Beschreibung | Wird benötigt |
---|---|---|---|---|
start | ||||
station | string | Name der Einstiegs Station | Nein | |
time | string | Abfahrtszeit von der Station | Nein | |
plattform | string | Bahnsteig an der Station | Nein | |
date | string | Abfahrtsdatum | Nein | |
prognose | string | Aktuelle Zeit, if n.a = string(0) | Nein | |
end | ||||
station | string | Name der Ausstiegs Station | Nein | |
time | string | Ankunftszeit an der Station | Nein | |
plattform | string | Bahnsteig an der Station | Nein | |
date | string | Ankunftsdatum | Nein | |
prognose | string | Aktuelle Zeit, if n.a = string(0) | Nein | |
data | ||||
productName | string | Produktname, z.B RJ, ICE, BUS | Nein | |
productImg | string | Dazugehöriges Bild zum Produkt oebb.at | Nein | |
productUrl | string | ersicht für die Linie. NULL Bug | Nein | |
duration | string | Fahrzeit der Verbindung | Nein |
Beispiel
<?php
header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";
$api = new oebbApi();
var_dump($api->getDetails(0));
array(1) {
[0]=>
array(3) {
["start"]=>
array(5) {
["station"]=>
string(17) "St.Pölten Hbf"
["time"]=>
string(6) " 19:56"
["plattform"]=>
string(1) "5"
["date"]=>
string(10) "16.01.2014"
["prognose"]=>
string(10) "pünktlich"
}
["end"]=>
array(5) {
["station"]=>
string(18) "Linz/Donau Hbf"
["time"]=>
string(6) " 20:45"
["plattform"]=>
string(4) "6A-C"
["date"]=>
string(10) "16.01.2014"
["prognose"]=>
string(10) "pünktlich"
}
["data"]=>
array(4) {
["productName"]=>
string(6) "RJ 764"
["productImg"]=>
string(46) "http://fahrplan.oebb.at/img/vs_oebb/rj_pic.gif"
["productUrl"]=>
string(221) "http://fahrplan.oebb.at/bin/traininfo.exe/dn/618567/292343/760906/174264/181?ld=19&seqnr=3&ident=ed.04333180.1389897270&date=16.01.2014&station_evaId=8100008&station_type=dep&journeyStartIdx=5&journeyEndIdx=9&backLink=tp&"
["duration"]=>
string(5) "06:12"
}
}
}
Koordinaten einer ganzen Verbindung - getCoords()
Wissenwertes
- Es muss erfolgreich die Funktion „ getDetails“ aufgerufen werden.
- Es ist zu beachten, dass diese Funktionen noch in manchen Fällen komische Ergebnisse zurückliefen kann. Es wird bereits daran gearbeitet.
- Jede Verbindung ist in einem Array zurück.
Change Log v0.3 Plausibilitätsprüfung der Teilverbindungen
Parameter
Sie müssen nur die Funktion „getDetails“ mit der jeweiligen Verwundung aufrufen, dann bekommen Sie die Koordinaten dieser Verbindung.
Rückgabewerte
Name | Typ | Beschreibung | Wird benötigt |
---|---|---|---|
name | string | Stations-Name | Nein |
xcoord | string | x-Koordinate | Nein |
ycoord | string | y-Koordinate | Nein |
realName | string | Debugging Name | Nein |
Beispiel
<?php
header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";
$api = new oebbApi();
var_dump($api->getCoords());
array(1) {
[0]=>
array(2) {
[0]=>
array(4) {
["name"]=>
string(14) "St.Pölten Hbf"
["xcoord"]=>
string(8) "15623800"
["ycoord"]=>
string(8) "48208331"
["realName"]=>
string(13) "St.Plten Hbf"
}
[1]=>
array(4) {
["name"]=>
string(14) "Linz/Donau Hbf"
["xcoord"]=>
string(8) "14291814"
["ycoord"]=>
string(8) "48290150"
["realName"]=>
string(14) "Linz/Donau Hbf"
}
}
}
Erstellt von Fred.