diff --git a/README.md b/README.md index abc44e9..32af696 100644 --- a/README.md +++ b/README.md @@ -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 -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 -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 -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 -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) diff --git a/oebbApi_v0.1.php b/oebbApi similarity index 93% rename from oebbApi_v0.1.php rename to oebbApi index f8d1ce4..9e88227 100644 --- a/oebbApi_v0.1.php +++ b/oebbApi @@ -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"); } -} \ No newline at end of file +} diff --git a/oebbApi_v0.3-Doku.pdf b/oebbApi_v0.3-Doku.pdf new file mode 100644 index 0000000..8aa016e Binary files /dev/null and b/oebbApi_v0.3-Doku.pdf differ