ReisTip

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue's back office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

Anaplan Developer

Dit ga je doen What are you going to do: Picking up Stories: Design planning had, how are we going to build it in Anaplan; Talking to the end user to build a forecasting model; Having contact with the data team about which data is needed; Being able to convert an Excel sheet into a 3, 4 or 5 dimensional modeling environment; Giving knowledge sessions about Anaplan; Solving incidents; Making instructional videos on how teams should read forecasts; Writing blogs about forecasting. Hier ga je werken We are looking for an Anaplan Builder to deliver end-to-end solutions within a big

Bekijk vacature »

Traineeship Java Developer

Functie Wat ga je doen als Java Developer? Jij start via ons bij deze opdrachtgever als Trainee Java ontwikkelaar, tijdens het traineeship ga je in 1 jaar van de basis naar professioneel Java ontwikkelaar. Je start samen met een groep trainees, volgt de aangeboden cursussen en gaat aan de slag bij één van onze opdrachtgevers. Na een aantal maanden volgt de volgende opdracht. Door de groei in jouw rol kom je op steeds complexere opdrachten terecht. Veel afwisseling dus. Collega’s met ervaring helpen je bij deze groei en samen met jouw coach ga je een persoonlijke leerplan opzetten om jou

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

Junior/Medior Front-end developer

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

Fullstack Developer

Functieomschrijving Heb je kort geleden jouw HBO diploma ICT development behaald? Of zit je nog aan het begin van je carrière en heb je affiniteit met C#.NET? Voor een erkende werkgever in de omgeving van Oosterhout zijn wij op zoek naar een fullstack developer. Als C#.NET developer werk je samen met een vooruitstrevend team aan het ontwikkelen van maatwerk software voor klanten. Je hebt affiniteit met SQL, maar nog belangrijker is dat je kennis en ervaring hebt met C#.NET. Jouw werkzaamheden zien er als volgt uit: Het ontwikkelen van onze high-availability en high-performance backend; Je begint de dag rond 8:30

Bekijk vacature »

.NET Software Developer

Dit ga je doen Als .NET Software Developer zul jij je voornamelijk bezig houden met: Het van scratch af aan bouwen van applicaties (.NET, C#, Bootstrap, KnockoutJs en WebAPI2); Het testen van jouw code d.m.v. het uitvoeren van unittesten; Het oplossen van bugs in de code; Het onderhouden van contact met collega's betreffende de door jouw ontwikkelde applicaties; Het verbeteren en doorontwikkelen van maatwerkapplicaties. Hier ga je werken Jij gaat aan de slag als .NET Software Developer en gaat je focussen op het bedenken, ontwikkelen en testen van maatwerkapplicaties in voornamelijk C#. Dit ga je doen bij een grote, internationale

Bekijk vacature »

Front-end PHP Developer

Dit ga je doen Bouwen van de frontend van een nieuwe applicaties; Verbeteren van de user experience; Opstellen van een style guide; Schakelen met collega developers over de te bouwen oplossing; Je speelt een belangrijke rol in het neerzetten van het nieuwe systeem; Werken met o.a. Symfony 6, API Platform, Twig, Javascript, Redis Automatiseren van processen; Koppelen van verschillende functionaliteiten; Unit tests, integration tests, end-to-end tests; In de toekomst ga je nog werken aan andere projecten. Hier ga je werken Voor onze vaste opdrachtgever in de regio Breda zijn wij op zoek naar een Frontend Developer. Het betreft een organisatie

Bekijk vacature »

.NET Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een .NET Developer! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans en kijk snel of jouw vaardigheden aansluiten bij onderstaand profiel! Je kunt een uitdagende rol gaan vervullen als .NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving Bergen. Dit bedrijf is zeer vooruitstrevend en verricht betekenisvol werk. Binnen dit bedrijf wordt gewerkt aan de productie en ontwikkeling van medische middelen. Als .NET Developer ga jij je bezig houden met het volgende: Je wordt betrokken bij alle fasen van software

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

Pagina: 1 2 3 volgende »

David Meijer

David Meijer

20/10/2014 10:45:19
Quote Anchor link
Hallo Allemaal,

Ik had een vraag hoe moet ik met zo als bij de NS de ReisTip laten zien kijk maar wat er achter de intercity staat naar Den Helder.

Want bij mij wordt dat niet getoont daar zie ik alleen Array staan.

zie screenshots

Afbeelding

Afbeelding
Gewijzigd op 20/10/2014 10:57:57 door David Meijer
 
PHP hulp

PHP hulp

27/05/2026 08:55:50
 
Henk de Vriep

Henk de Vriep

20/10/2014 10:59:37
Quote Anchor link
Het zou wellicht handig kunnen zijn om aan te geven hoe je deze gegevens inlaad? RSS? XML? CSV? API?
 
David Meijer

David Meijer

20/10/2014 11:03:30
Quote Anchor link
via NS API en dan komt hij via PHP op me site te recht.
 
Ivo P

Ivo P

20/10/2014 11:14:15
Quote Anchor link
Stel je hebt een array, en je probeert dat als geheel te echo-en, dan krijg je inderdaad "Array".


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$myArray
= ['aap', 'noot', 'mies'];

echo $myArray[0];   // geeft aap

echo $myArray;  // geeft Array

?>
 
David Meijer

David Meijer

20/10/2014 11:16:12
Quote Anchor link
dus dit staat hier niet goed.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
                                        if($soort == $ReisTip){
                                        ?>

                                        <?php
                                        }
                                        
                                        foreach ((array) $comment as $ReisTip)
                                        {

                                        ?>


                                        <div id="comment"><?php echo "$comment"; ?></div>
                                        <?php
                                        }
                                        
                                        foreach ((array) $ReisTip as $comment)
                                        {

                                        ?>

                                        
                                        <div id="ReisTip"><font color='red'><?php echo "$ReisTip"; ?></font></div>
                                                                                
                                        <?php                                        
                                        }
[
/code]
Gewijzigd op 20/10/2014 11:23:50 door David Meijer
 
- Ariën  -
Beheerder

- Ariën -

20/10/2014 11:37:15
Quote Anchor link
Je echoed nu nu een array $ReisTip, probeer eens $comment.
 
David Meijer

David Meijer

20/10/2014 11:46:46
Quote Anchor link
Dan krijg ik te zien bijvoorbeeld dat hij niet rijdt of dat hij via een andere route rijd.
 
- Ariën  -
Beheerder

- Ariën -

20/10/2014 11:50:48
Quote Anchor link
Dat is dan toch wat je wilt?
 
David Meijer

David Meijer

20/10/2014 11:52:35
Quote Anchor link
Ja maar dat andere zie ik dus niet zo als stopt vanaf Roosendaal op alle stations

Toevoeging op 20/10/2014 11:54:35:

Dit is een stukje code van Enkhuizen via de Webservices van de NS

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<ActueleVertrekTijden><VertrekkendeTrein><RitNummer>1545</RitNummer><VertrekTijd>2014-10-20T11:54:00+0200</VertrekTijd><EindBestemming>Amsterdam Centraal</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1547</RitNummer><VertrekTijd>2014-10-20T12:24:00+0200</VertrekTijd><EindBestemming>Amersfoort</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk, Amsterdam C.</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1549</RitNummer><VertrekTijd>2014-10-20T12:54:00+0200</VertrekTijd><EindBestemming>Amersfoort</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk, Amsterdam C.</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1551</RitNummer><VertrekTijd>2014-10-20T13:24:00+0200</VertrekTijd><EindBestemming>Amersfoort</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk, Amsterdam C.</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1553</RitNummer><VertrekTijd>2014-10-20T13:54:00+0200</VertrekTijd><EindBestemming>Amsterdam Centraal</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1555</RitNummer><VertrekTijd>2014-10-20T14:24:00+0200</VertrekTijd><EindBestemming>Amersfoort</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk, Amsterdam C.</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1557</RitNummer><VertrekTijd>2014-10-20T14:54:00+0200</VertrekTijd><EindBestemming>Deventer</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk, Amsterdam C.</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1559</RitNummer><VertrekTijd>2014-10-20T15:24:00+0200</VertrekTijd><EindBestemming>Deventer</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk, Amsterdam C.</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1561</RitNummer><VertrekTijd>2014-10-20T15:54:00+0200</VertrekTijd><EindBestemming>Amersfoort</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk, Amsterdam C.</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein><VertrekkendeTrein><RitNummer>1563</RitNummer><VertrekTijd>2014-10-20T16:24:00+0200</VertrekTijd><EindBestemming>Deventer</EindBestemming><TreinSoort>Intercity</TreinSoort><RouteTekst>Hoorn, A'dam Sloterdijk, Amsterdam C.</RouteTekst><Vervoerder>NS</Vervoerder><VertrekSpoor wijziging="false">1</VertrekSpoor><ReisTip>Stopt tot Hoorn op tussengelegen stations</ReisTip></VertrekkendeTrein></ActueleVertrekTijden


Daar staat juis wel de ReisTip.
 
- Ariën  -
Beheerder

- Ariën -

20/10/2014 11:55:41
Quote Anchor link
Ik heb geen idee of de NS die informatie ook meegeeft. Met enig debug-werk met print_r kan je erachterkomen.
 
David Meijer

David Meijer

20/10/2014 11:57:09
Quote Anchor link
Dan staat die Array op 0 juist wat ik je liet zien.

En van hun moest ik juist weer bij NS-API zijn van Google Group.
Gewijzigd op 20/10/2014 11:59:00 door David Meijer
 
- Ariën  -
Beheerder

- Ariën -

20/10/2014 12:01:27
Quote Anchor link
Laat eens zien met relevante code hoe je de boel ophaalt.
 
David Meijer

David Meijer

20/10/2014 12:04:26
Quote Anchor link
Oke

Dit is de Code waar ik het op haalt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
<?php

class PhpNsTrains {

    /* API Base URL setting
    * Note: currently HTTP, couldn't get the HTTPS to work so far
    */

    private static $base_url = "http://webservices.ns.nl/";
    
    private $authUser;
    private $authPassword;

    /* Constructor, takes API username and password obtainable from http://www.ns.nl/api */
    function __construct($username, $password) {
        $this->authUser = $username;
        $this->authPassword = $password;
    }

    
    /*     
     * Return a list of stations, optionally an associative array with the
     * given key from the return values (name, code, lat or long). Second parameter
     * specifies whether or not to only include Dutch train stations
     * NOTE: In most normal use cases, cache this result
     */

    function getStations($key = null, $nlOnly = false) {
        $xmlTree = $this->getUrl('ns-api-stations-v2');
        
        if (!in_array($key, array('name', 'code', 'lat', 'long')))
            $key = null;
            
        $output = array();
        foreach($xmlTree as $xmlStation) {
            $station = (array) $xmlStation;
            if ($nlOnly && $station['country'] == 'NL') { // Check if dutch
                if ($key) {
                    $output[$station[$key]] = $station;
                }
else {
                    $output[] = $station;
                }
            }
        }

        return $output;
    }

    
    /*
     * Get a list of current service disruptions. Options are:
     *  - 'station': filtered for given station
     *  - 'actual': show current disruptions? (boolean)
     *  - 'unplanned': show planned engineering works? (boolean)
     *  
     *  TODO: Handle 'bericht' field and test unplanned disruptions and
     *  add a helper function here
     */

    function getDisruptions($options = array()) {
        $xmlTree = $this->getUrl('ns-api-storingen', $options);

        $disruptions = array();
        foreach($xmlTree->Gepland->Storing as $xmlNotice){
            $notice = (array) $xmlNotice;
            $disruptions[] = array('id' => $notice['id'], 'applicable' => $notice['Traject'], 'period' => $notice['Periode'],
                'alternative' => $notice['Advies'], 'reason' => $notice['Reden'], 'delay' => $notice['Vertraging'], 'type' => 'planned');
        }

        foreach($xmlTree->Ongepland->Storing as $xmlNotice){
            $notice = (array) $xmlNotice;
            $disruptions[] = array('id' => $notice['id'], 'applicable' => $notice['Traject'], 'period' => $notice['Periode'],
                'alternative' => $notice['Advies'], 'reason' => $notice['Reden'], 'delay' => $notice['Vertraging'], 'type' => 'unplanned');
        }

        
        return $disruptions;
    }

    
    /*
     * Get a live list of departures for a given station, optionally with an name of key to use for the index
     */

    function getDepartures($station, $key = null) {
        $xmlTree = $this->getUrl('ns-api-avt', array('station' => $station));
        $output = array();
        // Loop over each train entry
        foreach($xmlTree as $xmlTrain) {
            // Cast as an array to get access to most keys
            $train = (array) $xmlTrain;    
            $add = array('departure' => strtotime($train['VertrekTijd']), 'service' => $train['RitNummer'],
                'destination' => $train['EindBestemming'], 'carrier' =>  $train['Vervoerder'], 'type' => $train['TreinSoort'],
                'platform' => $train['VertrekSpoor'], 'via' => $train['RouteTekst'] ? $train['RouteTekst'] : "");
            
                        // Decode any (optional) delay to a integer minute value
            if (isset($train['VertrekVertraging'])) {
                if (preg_match('/^PT(\d{0,3}?)M$/', $train['VertrekVertraging'], $matches)) {
                    $add['delay'] = $matches[1];
                }
            }


            // Check if the platform was changed
            $changed = false;
            if($xmlTrain->VertrekSpoor->attributes()) {
                $attr = (array) $xmlTrain->VertrekSpoor->attributes();
                if (isset($attr['@attributes']['wijziging']) && $attr['@attributes']['wijziging'] == "true")
                    $changed = true;
            }

            $add['platform_changed'] = $changed;
            
            // Add the various comments, also check if train is cancelled
            $cancelled = false;
               $add['ReisTip'] = $ReisTip; print_r($ReisTip);
        foreach($xmlTrain->ReisTip as $comment) {
                                $text = trim((string) $comment->ReisTip);
                                if ($text == "Stopt niet in Arnhem Zuid") {
                                        $ReisTip = true;
                               }

                               $add['ReisTip'][] = $text;
                         }

                               $add['cancelled'] = $cancelled;
        foreach($xmlTrain->Opmerkingen as $comment) {
                                $text = trim((string) $comment->Opmerking);
                                if ($text == "Rijdt vandaag niet") {
                                        $cancelled = true;
                                }

                                $add['comments'][] = $text;
                        }

                                $add['cancelled'] = $cancelled;
                                
            // Add the train to our output list
            $output[] = $add;
        }

        return $output;
    }

    
    /*
     * List the available travel options given a origin and destination.
     * Several options can also be set:
     *     - 'previousAdvices': number of ravel options to list in the past (max 5)
     *  - 'nextAdvices':  number of ravel options to list in the future (max 5)
     *  - 'dateTime': arrival or departure time
     *  - 'departure': is the above parameter arrival or departure (boolean)
     *  - 'hslAllowed': also use highspeed trains? (boolean) - default: true
     *  - 'yearCard': assume free travel? (boolean) - default: false
     *  
     *  TODO: Add support for notices/detection about invalid connections
     */

    function getTrips($from, $to, $options = array()) {
        if (!empty($options['dateTime'])) {
            $options['dateTime'] = date('c', strtotime($options['dateTime']));
        }

        $xmlTree = $this->getUrl('ns-api-treinplanner', array_merge(array('fromStation' => $from, 'toStation' => $to), $options));
        
        $output = array();
        // Loop over each option
        foreach($xmlTree as $xmlTrip) {
            $trip = (array) $xmlTrip;
            $tripOption = array('duration_scheduled' => self::hourMinutesToSeconds($trip['GeplandeReisTijd']),
                'duration_actual' => self::hourMinutesToSeconds($trip['ActueleReisTijd']),
                'optimal' => $trip['Optimaal'], 'departure_actual' => $trip['ActueleVertrekTijd'], 'departure_scheduled' => $trip['GeplandeVertrekTijd'],
                'departure_actual' => strtotime($trip['ActueleVertrekTijd']), 'departure_scheduled' => strtotime($trip['GeplandeVertrekTijd']),
                'arrival_actual' => strtotime($trip['ActueleVertrekTijd']), 'arrival_scheduled' => strtotime($trip['GeplandeVertrekTijd']),
                'changes' => $trip['AantalOverstappen']
            );

            
            // Loop over each part of the option
            foreach ($xmlTrip->ReisDeel as $xmlPart) {
                $part = (array) $xmlPart;
                $stops = array();
                
                // Loop over each stop
                foreach ($xmlPart->ReisStop as $xmlStop) {
                    $stop = (array) $xmlStop;
                    $curStop = array('station' => $stop['Naam'], 'time' => strtotime($stop['Tijd']));
                    if (!empty($stop['Spoor'])) {
                        $curStop['platform'] = $stop['Spoor'];
                    }

                    $stops[] = $curStop;
                }

                
                $tripOption['connections'][] = array('mode' => strtolower($part['@attributes']['reisSoort']),
                    'type' => $part['VervoerType'], 'service' => $part['RitNummer'], 'stops' => $stops);
            }

            $output[] = $tripOption;
        }

        return $output;
    }

    
    /*
     * Get a list of prices for a give to/from trip
     * Lists class as 1 or 2 (first/second) and discount as (0, 20 or 40%)
     */

    function getPrices($from, $to, $via = null) {
        $xmlTree = $this->getUrl('ns-api-prijzen-v2', array('from' => $from, 'to' => $to, 'via' => $via));
        
        $output = array();
        foreach($xmlTree->Product as $product) {
            $productArray = (array) $product;
            foreach ($product->Prijs as $price) {
                $price = (array) $price;
                switch ($price['@attributes']['korting']) {
                    case
"reductie_20": $discount = 20; break;
                    case
"reductie_40": $discount = 40; break;
                    case
"vol tarief": $discount = 0; break;
                    default:
$discount = 0; break;
                }

                $output[] = array('product' => $productArray['@attributes']['naam'],
                    'class' => $price['@attributes']['klasse'], 'discount' => $discount, 'price' => $price[0]);
            }
        }

        
        return $output;         
    }

    
    // UTILITY FUNCTIONS
    
    /*
     * Convert hours and minutes seperated by a colon to seconds
     */

    private function hourMinutesToSeconds($input) {
        $input = explode(':', $input);
        return 60*($input[1]+ ($input[0]*60));
    }

    
    /*
     * Internal functioning for downloading data
     * TODO: Add support for HTTPS and/or CURL
     */

    private function getUrl($endpoint, $vars = array()) {
    
        // Write query string
        $query = "?";
        foreach($vars as $key => $value) {
            if ($value != "") {
                $query .= $key."=".$value."&";
            }
        }

        $query = rtrim($query, '&');
        $url = self::$base_url . $endpoint . $query;

        // Create context to be able to specify authentication
        $context = stream_context_create(array(
            'http' => array(
                'header'  => "Authorization: Basic " . base64_encode($this->authUser.":".$this->authPassword)
            )
        ));

        $data = file_get_contents($url, false, $context);
        if (!$data)
            return false;
        
        // Parse the result
        $xmlTree = simplexml_load_string($data);
        
        return $xmlTree;
    }

}


?>


En dit is hoe ik het op me site zie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<?PHP
//DATUM NL
  $tijd = date("H:i");
  $dag_vd_week = date("w");
  $maand_vh_jaar = date("n")-1;
  $dedag = date("j");
  $jaar = date("Y");
  $uur = explode(":", $tijd);

  $dagen = array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
  $maanden = array('januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december');
  $dag = $dagen[$dag_vd_week];
  $maand = $maanden[$maand_vh_jaar];


//STATIONS VARS
$station = $_GET['from'];
$station = stripslashes($_GET['from']);
$stationnaam = urlencode($station);

include './js/sec.php';
?>

<?php
//Haal het bestand op
$xml_feed4 = file_get_contents('http://www.ns.nl/storingen/index.rss');
//Een XML phraser aanmaken
$xml_praser4 = xml_parser_create();
//Verwerking
xml_parse_into_struct($xml_praser4,$xml_feed4,$xml_sleutel,$xml_index);
xml_parser_free($xml_praser4);
//Genereren van headlines
for($s = 0; !empty($xml_index['TITLE'][$s]); $s++){

    if ($s == 0) {
    $storing = 0;
    }
if ($s == 1) {
    $storing =  1;
    $storing1 = $xml_sleutel[$xml_index['TITLE'][1]]['value'];
    $naam = $storing1;
    }
if ($s > 1) {
    $storing =  $s;
    }
}

?>

<div id="textbox">
  <p class="alignleft">Station <?PHP echo $station; ?></p>
  <p class="alignright"><?PHP echo "$dag $dedag $maand $jaar - $tijd"; ?></p>
</div><div style="clear: both;"></div>
<?PHP
if($storing == 1) {
echo "<div id='storing'>Er is op dit moment 1 storing bekend!</div>";
}

if($storing > 1) {
echo "<div id='storing'>Er zijn op dit moment $storing storingen bekend!</div>";
}

?>

<table cellpadding="0" cellspacing="0" style="width: 100%; color: #FFFFFF; background-color: #18295B;">
<td width="5px"></td><td width="70px"><div id="top_tijd">Vertrek</div></td><td width="450px"><div id="top_bestemming">
Naar / Opmerkingen</div></td><td width="58px"><div id="top_spoor">Spoor</div></td><td width="80px"><div class="top_soort">Trein</div></td><td><div class="top_opmerking">Opmerkingen</div></td>
</table>
<table cellpadding="0" cellspacing="0" style="width: 100%; color: #FFFFFF;">
<?PHP
    require('ns.class.php');
    define(API_USER, '[email protected]');
    define(API_PASSWORD, 'ac7XG_DP5BnFcco9_01-b2dq4Ps5cgyXv4wnzR_WpNWCXR6xMr_SYg');
    $ns = new PhpNsTrains(API_USER, API_PASSWORD);
        
        
        foreach($ns->getDepartures($stationnaam) as $train) {
            
            $vertrektijd = date('H:i', $train['departure']);
            $soort = $train['type'];
            $ritnummer = $train['service'];
            $via = $train['via'];
            $vervoerder = $train['carrier'];
            $bestemming = $train['destination'];
            $spoor = $train['platform'];
            $vertrekspoor = strtolower($spoor);
            $vertraging = $train['delay'];
            $spoorw = $train['platform_changed'];
            $cancelled = $train['cancelled'];
            $comment = $train['comments'];  
            $ReisTip = $add['ReisTip']; print_r($ReisTip);
                $i++;        
                     if($soort == ""){
                        $soort = "Trein";
                    }

                    if($cancelled == "true"){
                        $weg = true;
                        $vertraging = 0;
                        $vertrekspoor = "leeg";
                    }
else{
                        $weg = false;
                    }


                    if($soort == "CityNightLine"){
                        $soort = "CityNightLine";
                    }

                    if($soort == "SPR"){
                        $soort = "Sprinter";
                    }

                    if($soort == "Stopbus i.p.v. Trein"){
                        $vertrekspoor = "leeg";
                        $soort = "Stopbus i.p.v. Trein";
                    }

                    if($soort == "Snelbus i.p.v. Trein"){
                        $vertrekspoor = "leeg";
                        $soort = "Snelbus i.p.v. Trein";
                    }

                    if($bestemming == "Den Haag Centraal / Rotterdam Centraal"){
                        $bestemming = "Den Haag CS / Rotterdam CS";
                    }

                    if($spoorw == "true") {
                        $swijziging = "true";
                        $swijzigingtekst = "Spoor Gewijzigd!";
                    }
else{
                        $swijziging = false;
                    }



                            $delay = $vertraging * 60;
                            $time2 = strtotime($vertrektijd);
                            $time2 = date("H:i", $time2 + $delay);

                            $orgi = date("H:i");
                            $orgi = strtotime($orgi);
                            $time3 = strtotime($vertrektijd);
                            $time3 = date("i", $time3 - $orgi);
                            $time33 = str_replace("0", " ", "$time3");
                    if($i < 16){
                    
                        $background=($i&1)?"":"&amp;achtergrond=wit";
                        ?>
                  
                
                
        <tr class="row<? echo ($i&1); ?>">
            <td width="65px">
        <?PHP
        if($vertraging > 1){
        ?>

        <div id="tijdw"><?php echo $time2; ?></div>
        <div id="tijdw2"><?php echo "was: $vertrektijd"; ?></div>
        <?PHP
        }else{
        ?>

        <div class="vertrektijd"><?php echo $vertrektijd; ?></div>
        <?PHP
        }
        ?>

        </td>
            <td width="450px">
    <?PHP
    if ($weg == true){
    ?>

    <div id="bestemming"><s><?php echo "<a href='./fullscreen.php?from=$bestemming'>$bestemming</a>"; ?></s></div>
    <?PHP
    }else{
    ?>

    <div id="bestemming"><?php echo "<a href='./fullscreen.php?from=$bestemming'>$bestemming</a>"; ?></div>
    <?PHP
    }
    ?>

       <div class="naar_via_opm"><?PHP echo $via;  ?></div></td>
       <?PHP if($swijziging == true){ ?>
            <td width="50px";><img border="2" style="border-color:red; border-left:0; border-top:0;" src="./sporen/<?php echo $vertrekspoor; ?>.png"></td>
       <?PHP }else{ ?>
               <td width="50px";><img src="./sporen/<?php echo $vertrekspoor; ?>.png"></td>
       <?PHP } ?>

        <td width="80px";><div id="soort"><?PHP echo $soort; ?><br /><font size="1"><?php echo $ritnummer; ?></font></div></td>
                                                        <td><?php
                                        if($swijziging == true){
                                        ?>

                                        <div id="wijzigingspoor"><?php echo "<font color='red'> <u>Spoorwijziging, vertrekt van spoor $vertrekspoor "; ?></u></font></div>
                                        <?php
                                        }
                                        ?>

                                                                       <?php
                                        if($weg == true){
                                        ?>

                                        <div id='rijdtniet'><?php echo "Rijdt vandaag niet"; ?></div>
                                        <?php
                                        }
                                        ?>

                                        <?php
                                        if($vertraging > 1){
                                        ?>

                                        <div id="vertraging"><?php echo "+ $vertraging min."; ?></div>
                                        <?php
                                        }
                                        ?>

                                        <?php
                                        if($soort == $Bus){
                                        ?>

                                        <div id="bus">Op dit traject vindt busvervoer plaats</div>
                                        <?php
                                        }
                                        ?>

                                        <?php
                                        if($soort == $ReisTip){
                                        ?>

                                        <?php
                                        }
                                        
                                        foreach ((array) $comment as $ReisTip)
                                        {

                                        ?>


                                        <div id="comment"><?php echo "$comment"; ?></div>
                                        <?php
                                        }
                                        
                                        foreach ((array) $ReisTip as $comment)
                                        {

                                        ?>

                                        
                                        <div id="ReisTip"><font color='red'><?php echo "$ReisTip"; ?></font></div>
                                                                                
                                        <?php                                        
                                        }
                                        ?>



                                                                        
</td>
        </tr>

<?PHP
}
}

if ($i < 2) {
?>

<tr class="row">
<td width="65px"><?php echo "<b>00:00</b>"; ?></td>
<td width="450px"><?php echo '<b><font color="red">Geen informatie beschikbaar</font></b>'; ?></td>
<td><img src="./sporen/leeg.png" /></td>
<td>ER01</td>
<td><?PHP echo '<b>Er is op dit moment geen actuele informatie beschikbaar...</b>'; ?></td>
<td>
</tr>                        
<?PHP
}
?>

</table>
 
- Ariën  -
Beheerder

- Ariën -

20/10/2014 12:09:36
Quote Anchor link
Ikzelf gebruik geen class en haal het direct op via SimpleXML. Dan heb je meer controle over de data.

Misschien is dat een idee? Om zelf een class te begrijpen als beginner is een brug te ver, naar mijn mening.
 
David Meijer

David Meijer

20/10/2014 12:17:16
Quote Anchor link
Alleen ik snap helemaal niks van SimpleXML.
 
- Ariën  -
Beheerder

- Ariën -

20/10/2014 12:18:22
Quote Anchor link
Dan lees je tutorials... ;-)
 
David Meijer

David Meijer

20/10/2014 12:20:30
Quote Anchor link
oke dan maar als ik het nog steeds niet snap dan want ik weet ook niet hoe ik van alle stations moet uitlezen op een site zo als ik het nu heb.
 
- Ariën  -
Beheerder

- Ariën -

20/10/2014 12:23:02
Quote Anchor link
Als je het snapt kan je de XMLfeeds met de stations en de vertrektijden uitlezen.
Zie ook eens: http://www.phpeveryday.com/articles/SimpleXML-Accessing-Element-P535.html
Gewijzigd op 20/10/2014 13:00:29 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

21/10/2014 19:10:59
Quote Anchor link
Even een makkelijk opzetje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if(isset($_GET['station'])) {
    $username = "[email protected]";
    $password = "jouwpassword";
    $url = "http://webservices.ns.nl/ns-api-avt?station=".$_GET['station'];

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
    $result = curl_exec($ch);
    curl_close($ch);

    $xml = simplexml_load_string($result,NULL, LIBXML_NOCDATA);
    echo "<pre>".print_r($xml,true)."</pre>";
}
else {
    echo "Er is geen station meegegeven";
}

?>


Nu moet je vast wel een stukje verder komen, denk ik David ;-).
Gewijzigd op 21/10/2014 19:11:27 door - Ariën -
 
David Meijer

David Meijer

22/10/2014 13:20:27
Quote Anchor link
alleen nog even mooi maken ik moet alleen even kijken hoe ik dat gaat doen
 
- Ariën  -
Beheerder

- Ariën -

22/10/2014 13:26:22
Quote Anchor link
Onthoud wel dat die print_r() die iets blijvend is. Het is puur ter debugging, zodat je weet over welke data je beschikt.
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.