Empfehlungen: Erweiterte Suche

BahnApiComponent

Anleitungen und Quellcode-Auszüge die den Start vereinfachen sollen.

BahnApiComponent

Beitragvon anachronist » Do 27. Jan 2011, 16:45

Eine Komponente von mir, mit der man die naechsten drei abfahrten fuer einen gegebenen abfahrts- und ankunftsbahnhof ermitteln kann:
[url]http://bakery.cakephp.org/articles/anachronist/2011/01/27/bahnapicomponent[/url

ich dachte mir, dass das vielleicht fuer jemanden hilfreich sein koennte.
anachronist
 
Beiträge: 9
Registriert: Mi 3. Mär 2010, 20:30

Re: BahnApiComponent

Beitragvon anachronist » Do 27. Jan 2011, 16:53

nachdem ich arge probleme mit der cakephp bakery hatte, hier der quellcode fuer die component:

Code: Alles auswählen
<?php
/**
 * This Component receives Train departure and arrival information, parsing the bahn.de Website
 * Use it, change it, copy it, but please inform me about your activities with this component.
 * @author Sebastian Horwege (sebastian [at] minamo [dot] de)
 * @version 1.0
 *
 */

class BahnApiComponent extends Object {

    /**
     *
     * @param depart string departure station
     * @param arrive string arrival station
     * @param timestamp integer optional if !isset() current Servertime will be used
     * @return array containing the information about the next 3 departures / arrivals
     */

    function get_schedule($depart,$arrive,$timestamp = 0){
        $DateTime = date('D M d y H%3A02%3Ai eO',$timestamp);
        if($DateTime == date('D M d y H%3A02%3Ai eO',0) $Uhrzeit = date('D M d y H%3A02%3Ai eO');


        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,"http://reiseauskunft.bahn.de/bin/query.exe/dn?cb=processFahrtmoeglichkeiten&amp;nrCons=3&amp;S=".$depart."&amp;SBH=1&amp;Z=".$arrive."&amp;ZBH=1&amp;journeyProducts=1023&amp;wTime=&amp;widget=1&amp;start=1&amp;now=".$Uhrzeit."&amp;encoding=utf-8");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);
       
        preg_match_all('/"([a-zA-Z]*)"\:[ ]?"([^"]*)"/',$output,$regs);
        $keys = $regs[1];
        $values = $regs[2];

        $endKey = 0;
        foreach($keys as $key => $value){
            if($value == 'ab') $endKey++;
            $return[$endKey][$value] = $values[$key];
        }
       
            return $return;
    }
}              


?>
anachronist
 
Beiträge: 9
Registriert: Mi 3. Mär 2010, 20:30

Re: BahnApiComponent

Beitragvon euromark » Fr 28. Jan 2011, 00:25

ich würde daraus eher ne lib machen
die ist dann etwas flexibler auch in anderen teilen einsetzbar (cake1.3 vorausgesetzt)

außer n paar schönheitsfehlern schauts doch ganz gut aus :)
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: BahnApiComponent

Beitragvon anachronist » Sa 29. Jan 2011, 17:59

Ja, wenn ich doch nur wuesste, wie man hier beitraege editiert. Ich kannte bis eben Json nicht (schande ueber mein haupt), somit ist der ganze reg_exp teil ueberfluessig, sowie die Datumskontrolle, die ist auch nicht einwandfrei. Auf cakephp.org werde ich solche Sachen fixen!

Ne Lib, kannst du das naeher ausfuehren, oder Links geben?
anachronist
 
Beiträge: 9
Registriert: Mi 3. Mär 2010, 20:30

Re: BahnApiComponent

Beitragvon euromark » Sa 29. Jan 2011, 20:37

http://book.cakephp.org/view/1579/Library-classes

ich meinte eher die deutschen variablen dazwischen etc :)
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Tutorials und Snippets

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron