Revert dd6df15..fc5e632

This rolls back to commit dd6df158b1.
This commit is contained in:
Fred 2014-01-22 08:51:28 +01:00
parent fc5e632801
commit 3c3460fab0
3 changed files with 38 additions and 354 deletions

363
README.md
View file

@ -1,4 +1,4 @@
Dokumentation für die oebbApi - PHP
Dokumentation für die oebbApi
==========
@ -12,9 +12,9 @@ Allgemeines
**Was muss ich beachten?**
**Was müssen 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.
* Zu jeder Funktion gibt es auch ein Beispiel. Siehe PDF.
* Es gelten die Allgemeinen Geschäftsbedingungen und die Nutzungsbedingungen von [oebb.at](http://oebb.at). [http://www.oebb.at/de/Nutzungsbedingungen/index.jsp](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!
@ -23,383 +23,88 @@ Allgemeines
Wenn Sie etwas für einen Lehrling in ersten Lehrjahr spenden möchten, dann können Sie das über diese Links tun. :)
[Flattr](https://flattr.com/profile/internetztube) [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TKFLMZMXM3Z64)
[Flattr](https://flattr.com/profile/internetztube)
[PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TKFLMZMXM3Z64)
Station validieren - validate()
-----------
**Wissenwertes**
1. Es ist zu beachten, dass bei einem Aufruf mehrere Stationen zurückkommen können.
2. Für den weiteren Vorgang wird ausschließlich der name („value“) benötigt.
**Parameter**
**Useage**
| Name | Typ | Beschreibung | Zwingend benötigt |
| ---- | ------ | ---------------- | ----------------: |
| name | string | Name der Station | Ja |
| ---- | ------ | ---------------- | ----------------- |
| name | string | Name der Station | X |
**Rückgabewerte**
| Name | Typ | Beschreibung | Wird benötigt |
<<<<<<< HEAD
| ----- | ------ | --------------------------- | ------------- |
| value | string | Gültiger Name der Station | X |
| value | string | Gültiger Name der Station | X |
| id | int | Irgend eine ÖBB Stations ID | |
=======
| ----- | ------ | --------------------------- | ------------: |
| value | string | Gültiger Name der Station | Ja |
| id | int | Irgend eine ÖBB Stations ID | Nein |
>>>>>>> cada5275f155639e1f29bab8507bc144f6722a62
***Beispiel***
```php
<?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**
1. Die Stations-Namen können leicht abgeändert eigegeben werden. Aus „St. Pölten“ wird „St.Pölten Hbf“
2. Wenn die Parameter „date“, „time“ nicht verwendet oder mit NULL angegeben werden, wird automatisch das aktuelle Datum bzw. Zeit verwendet.
3. Die „id“ ist für die Verwendung der Funktionen „getDetails“ und in Folge „getCoords“ essenziell.
4. 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**
**Useage**
| Name | Typ | Beschreibung | Zwingend benötigt |
| --------- | ------ | ------------------------ | ----------------: |
| departure | string | Name der Abfahrtsstation | Ja |
| arrival | string | Name der Ankunftsstation | Ja |
| amount | int | Anzahl der Verbindungen | Ja |
| --------- | ------ | ------------------------ | ----------------- |
| departure | string | Name der Abfahrtsstation | X |
| arrival | string | Name der Ankunftsstation | X |
| amount | int | Anzahl der Verbindungen | X |
**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 |
| ------------ | ------ | --------------------------------------------- | ------------- |
| startStation | string | Name der Abfahrtsstation | |
| endStation | string | Name der Ankunftsstation | |
| startDate | string | Abfahrtsdatum, wichtig bei Nachtzügen | |
| endDate | string | Ankunftsdatum | |
| startTime | string | Abfahrtszeit | |
| endTime | string | Ankunftszeit | |
| duration | string | Fahrtdauer | |
| changes | int | Umstiege | |
| buyLink | string | Kauflink zur Verbindung | |
| changesLink | string | Link zur Verbindung auf oebb.at | |
| products | array | Alle Verkehrsmittel mit Bezeichnung und Bild | |
| prognose | string | BETA, Verspätungen | |
| id | int | Nummer der Verbindung der Anfrage | |
| earlier | string | Siehe oben. | |
***Beispiel***
```php
<?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()
Details einer Verbindung - getDetails
-----------
**Wissenwertes**
1. Von der Funktion „getDetails“ bekommen Sie die essenziellen Infos einer spezifischen Verbindung.
2. Für den Aufruf benötigen Sie lediglich die „id“ der Verbindung. Diese „id“ bekommen Sie von der Funktion „get“ zurück.
3. Funktioniert nur bei einer erfolgreich ausgeführten Suche (get).
**Parameter**
**Useage**
| Name | Typ | Beschreibung | Zwingend benötigt |
| ---- | --- | -------------------------------------------- | ----------------: |
| id | int | Index der spezifischen Verbindung. Siehe get | Ja |
**Rückgabewerte**
<<<<<<< HEAD
| Array | Name | Typ | Beschreibung | Beschreibung |
| ----- | ----------- | --- | ------------ | ------------ |
| start | | | | |
| | station | | | |
| | time | | | |
| | plattform | | | |
| | date | | | |
| | prognose | | | |
| | station | | | |
| end | | | | |
| | time | | | |
| | plattform | | | |
| | date | | | |
| | prognose | | | |
| data | | | | |
start
station (string) Name der Einstiegs Station
time (string) Abfahrtszeit von der Station
plattform (string) Bahnsteig an der Station
date (string) Abfahrtsdatum
prognose (string) Aktuelle Zeit, if n.a = string(0)
end
station (string) Name der Ausstiegs Station
time (string) Ankunftszeit an der Station
plattform (string) Bahnsteig an der Station
date (string) Ankunftsdatum
prognose (string) Aktuelle Zeit, if n.a = string(0)
data
productName (string) Produktname, z.B RJ, ICE, BUS
productImg (string) Dazugehöriges Bild zum Produkt oebb.at
productUrl (string) Übersicht für die Linie. NULL Bug
duration (string) Fahrzeit der Verbindung
=======
**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
<?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()
-----------
>>>>>>> cada5275f155639e1f29bab8507bc144f6722a62
| ---- | --- | -------------------------------------------- | ----------------- |
| id | int | Index der spezifischen Verbindung. Siehe get | X |
**Wissenwertes**
1. Es muss erfolgreich die Funktion „ getDetails“ aufgerufen werden.
2. Es ist zu beachten, dass diese Funktionen noch in manchen Fällen komische Ergebnisse zurückliefen kann. Es wird bereits daran gearbeitet.
3. Jede Verbindung ist in einem Array zurück.
**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
<?php
header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";
$api = new oebbApi();
var_dump($api->getCoords());
```
```array
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.**
[internetz2tb@gmail.com](mailto:internetz2tb@gmail.com)
[http://twitter.com/InternetzTube](http://twitter.com/InternetzTube)

View file

@ -3,13 +3,12 @@
require_once 'phpquery/phpQuery/phpQuery.php';
class oebbApi {
protected $i = 0;
protected $data = array();
public function __construct() {
session_start();
$_SESSION["oebbApi"]["get"] = false;
$_SESSION["oebbApi"]["getDetails"] = false;
}
public function get($departure, $arrival, $amount, $date = null, $time = null, $timeMode = false) {
@ -53,14 +52,10 @@ class oebbApi {
}
}
$_SESSION["oebbApi"] = $this->data;
$_SESSION["oebbApi"]["get"] = true;
return $this->data;
}
public function getCoords() {
if($_SESSION["oebbApi"]["getDetails"] == false) {
return false;
}
$details = $_SESSION["oebbApi"]["detail"];
$returnArray = array();
foreach ($details AS $detail) {
@ -136,9 +131,6 @@ class oebbApi {
if ($index > count($_SESSION["oebbApi"])) {
return false;
}
if($_SESSION["oebbApi"]["get"] == false) {
return false;
}
$this->loadUrl($_SESSION["oebbApi"][$index]["changesLink"]);
@ -173,9 +165,6 @@ class oebbApi {
$startPlattform =
pq('.intermediateSection .platform:eq(' . $i . ')')->text();
$startPrognose =
pq('.intermediateSection .realTime:eq(' . $i . ')')->text();
$productName =
pq('.intermediateSection img.product:eq(' . $j . ')')->attr("alt");
@ -210,9 +199,6 @@ class oebbApi {
$endPlattform =
pq('.intermediateSection .platform:eq(' . $i . ')')->text();
$endPrognose =
pq('.intermediateSection .realTime:eq(' . $i . ')')->text();
$startStation = $this->trim($startStation);
$endStation = $this->trim($endStation);
@ -223,11 +209,8 @@ class oebbApi {
$startTime = $this->trim($startTime);
$endTime = $this->trim($endTime);
$startPrognose = $this->trim($startPrognose);
$endPrognose = $this->trim($endPrognose);
$startPlattform = $this->trim($startPlattform);
$endPlattform = $this->trim($endPlattform);
$startPlattform = $this->trim($startPlattform, "\xC2\xA0\n");
$endPlattform = $this->trim($endPlattform, "\xC2\xA0\n");
$startPlattform = $this->trim($startPlattform);
$endPlattform = $this->trim($endPlattform);
@ -247,14 +230,12 @@ class oebbApi {
"time" => $startTime,
"plattform" => $startPlattform,
"date" => $startDate,
"prognose" => $startPrognose,
),
"end" => array(
"station" => $endStation,
"time" => $endTime,
"plattform" => $endPlattform,
"date" => $endDate,
"prognose" => $endPrognose,
),
"data" => array(
"productName" => $productName,
@ -271,7 +252,6 @@ class oebbApi {
}
}
$_SESSION["oebbApi"]["detail"] = $changes;
$_SESSION["oebbApi"]["getDetails"] = true;
return $changes;
}
@ -375,7 +355,6 @@ class oebbApi {
"prognose" => $this->getPrognose($pos),
"id" => $this->i,
"earlier" => $this->getEarlierLink(),
);
return $data;
}
@ -442,4 +421,4 @@ class oebbApi {
protected function trim($string) {
return trim($string, "\xC2\xA0\n\t\r\0\x0B");
}
}
}

BIN
oebbApi_v0.3-Doku.pdf Normal file

Binary file not shown.