ReisTip

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end developer (React)

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

Bekijk vacature »

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

ERP Developer fleet managementsysteem

Wat ga je doen als ERP Developer fleet managementsysteem? Als ERP developer speel jij een belangrijke rol bij het doorvoeren van wijzigingen en verbeteringen binnen het fleet managementsysteem. Jouw expertise op het gebied van ERP systemen stelt jou in staat om de applicatie optimaal te laten functioneren en te blijven ontwikkelen. Als lid van het IT-team werk je nauw samen met andere developers en het business team om het fleet managementsysteem te integreren met andere systemen. Je bent verantwoordelijk voor het ontwikkelen van nieuwe functionaliteiten en het implementeren van verbeteringen op basis van de wensen en eisen van onze klanten.

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

C# Developer

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Door middel van ASP.NET, MVC Framework en C# ga je webshops, websites en webapplicaties ontwikkelen. Je zorgt voor de optimalisatie van bestaande software en de automatisering van bedrijfsprocessen. Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Bedrijfsprofiel

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Senior .NET developer

Functie As a Senior .NET developer you will work in our Research & development team. Our team consists of 17 colleagues! We are currently busy setting up a completely new architecture for a new product. We use VS2022 and .NET 6.0 for our new product. Your function is therefore mainly backend oriented. Since we develop measuring equipment for the chemical industry, it is also very important to develop high-quality software for its control. You are also responsible for designing, implementing and testing new features. For this position its also very important to ensure future-proof and sustainable architecture. Eisen - A

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 »

.NET developer

Functie Jouw team van vier collega .NET developers is verantwoordelijk voor het bouwen van de ETL processen van jouw nieuwe werkgever. Op dit moment wordt de front-end gedaan door een extern team van professionals. Echter wilt jouw nieuwe werkgever graag intern deze kennis uitbreiden en heeft dan ook de ambitie om dit voor het eind van het jaar intern te gaan aanpakken. Dit betekend dat jij als .NET ontwikkelaar de ideale kans krijgt om jezelf samen met jouw collega’s te ontwikkelen als full stack developer. Als .NET ontwikkelaar werk jij bij deze gave werkgever met C# .NET, SQL, JavaScript, REST

Bekijk vacature »

Front end developer React Sportgames

Functie Als Front end developer ga jij aan de slag bij een gave en bekende organisatie op het gebied van sportgames. Jij gaat aan de slag in een scrumteam met 6 developers die gepassioneerd en actief bezig zijn om spelers kwalitatieve en mooie spelervaringen aan te bieden. Als scrumteam werken ze in drie wekelijkse sprints en begin je iedere ochtend met een stand-up. Als Front end developer werk jij bij deze organisatie voornamelijk met Javascript, html, css en React. Er wordt veel gebruikt gemaakt ook van C#, Docker en Kubernetes. Het team hecht veel waarde aan het leveren van hoogwaardige

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

Senior Applicatie ontwikkelaar Java

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving We verwachten van je,

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/12/2024 06:43:13
 
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.