ReisTip

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

Developer (One Data)

Do you have experience with managing IT Teams in a service delivery organization? Are you keen to bring the team and our platform to a higher level? Then Nutreco has a very interesting role for you! As a One Data developer you are responsible for the management, running and functional use of our integration landscape and processes within Nutreco. Nutreco is using at this time BizTalk 2016, and Apigee for its API management, to be replaced by Azure Integration Services as of 2023. You will be part of a virtual teams of 11 people (own and outsourced) working in an

Bekijk vacature »

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

Software developer - senior

Functie omschrijving Voor een echt softwarebedrijf in omgeving Gouda zijn wij op zoek naar versterking voor de afdeling Software Development! Ben jij op zoek naar een werkgever waar meerdere software developers werken aan interessante projecten? Ben jij op zoek naar een werkgever waar je onderdeel wordt van een team dat echt passie heeft voor het ontwikkelen van software? Dan ben je hier aan het juiste adres! Als softwareontwikkelaar kom je terecht bij een onafhankelijk, door kwaliteit gedreven, doortastend en daarbij op een Agile wijze werkend bedrijf. Ben jij een expert in het vertalen van Componenten van Functionaliteit naar Business lagen?

Bekijk vacature »

Full Stack Developer

Ben jij een kei van een full-stack developer? Heb je ambitie om te groeien en jezelf te ontwikkelen binnen een ambitieus bedrijf? Gaat jouw hart sneller kloppen van transpilers of frameworks zoals Angular, Vue of React? Dan ben jij de persoon die wij zoeken! Voor onze opdrachtgever zijn wij op zoek naar een full-stack developer om onderdeel te zijn van een team dat bestaat uit gedreven developers. Ieders met hun eigen specialiteiten en kennis van de projecten en behoeften vanuit de product owners. We zoeken iemand die met zijn/haar huidige competenties en domeinen dit team wil begeleiden, stimuleren en tevens

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Back-end ontwikkelaar

Functie omschrijving Wil jij meebouwen aan diverse databasesystemen in een klein bedrijf met een platte organisatie? In een team van ruim 10 ontwikkelaars wordt er aan diverse ICT oplossingen gewerkt. Jouw taken hierbij zullen bestaan uit: Het onderhouden en door-ontwikkelen van bestaande databases. Denk hierbij aan schema verbeteringen en performance-tuning. Bij nieuwe ontwikkelingen ga jij ook bezig met het bouwen van het databaseschema. Omdat je in een klein team werkt zal je ook de C# routine verder uitbouwen en ontwikkelen. Ook kan je meedraaien in algemene refactory-, ontwikkel- of testwerkzaamheden. Je zal voornamelijk gebruik maken van de volgende technieken: .NET

Bekijk vacature »

Software Developer .NET

Functie omschrijving .NET developer gezocht! Wij zoek op zoek naar een .NET Developer die zich niet uit het veld laat slaan voor een software bedrijf in de regio Veenendaal. Je gaat in deze functie aan de slag met het door ontwikkelen van bestaande producten en het ontwikkelen van nieuwe producten. Dit bedrijf ontwikkeld SaaS applicaties die zowel intern als extern gebruikt worden. Verder bestaat je functie uit: Het ontwikkelen en bouwen van webapplicatie, mobiele applicaties en websites vallen onder jouw verantwoordelijkheden; Werken met onder andere .NET, C#, HTML/CSS, Javascript en MSSQL/Oracle Databases; Hierin werk je samen met andere developers en

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Front end developer

Functie Jij als front end developer gaat werken binnen de teams van onze klant, uiteraard met alle moderne technieken. Opdrachten worden echt gericht op jouw leerdoelen en jouw behoeftes. Wij hebben een omgeving gecreëerd waarin je echt jezelf kan zijn en waar echt gekeken wordt naar jouw voorkeuren. Maak je een fout? Geen probleem, leer ervan en dan ga weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en dus jezelf snel ontwikkelen. Eisen Je bent communicatief vaardig en houdt van een dynamische omgeving Je hebt HBO werk- en denkniveau Je hebt gedegen kennis

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

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

05/11/2024 12:01:29
 
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.