· 5 years ago · Mar 01, 2021, 01:54 PM
1<?php
2
3// Dit zijn je instellingen
4$url="https://gateway.apiportal.ns.nl/reisinformatie-api/api/v2/stations";
5$apikey = "JOUW API KEY";
6$debug = false;
7
8// Hier begint het script
9// Haal met cURL de gegevens de inhoud van URL op.
10$ch = curl_init();
11curl_setopt($ch, CURLOPT_URL,$url);
12curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
13curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
14curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
15curl_setopt($ch, CURLOPT_HTTPHEADER, array('Ocp-Apim-Subscription-Key: '.$apikey));
16
17// Hier zit je data in.
18$response = curl_exec ($ch);
19
20// sluit cURL weer af.
21curl_close ($ch);
22
23// Zet de data (is JSON) om in een array; makkelijker uit te lezen
24$content = json_decode($response,true);
25
26// Even een controle of er wel gevraagde data is. Die staat bij de NS API in een aparte array 'payload'.
27// Zo niet, dan is er hoogstwaarschijnlijk een error en moet het script gestopt worden.
28if(!isset($content['payload'])) {
29 echo "Er kon geen data worden opgehaald: ".$content['message']." (".$content['statusCode'].")";
30 exit;
31}
32
33
34// Controle op debug-status.
35// Als deze bovenaan op true staat zie je een uitvoer van je array met alle data die je bij NS kan opvragen. Puur voor ontwikkeling bedoeld.
36if($debug == true) {
37 echo "<pre>".print_r($content['payload'],true)."</pre>";
38}
39
40// Loopje maken om alle stations door te lopen.
41foreach($content['payload'] as $station) {
42
43// De data in een lijst ter verduidelijking.
44// Hier in deze loop kan je zelf ook een INSERT-query plaatsen om de onderstaande variabelen in je database in te voeren.
45
46// $sql = "INSERT INTO `station` namen='".mysqli_real_escape_string($conn,$station['namen']['lang'])."',
47// code='".mysqli_real_escape_string($conn,$station['code'])."',
48// land='".mysqli_real_escape_string($conn,$station['land'])."'
49//";
50// mysqli_query($conn,$sql) or die(mysqli_error($conn);
51
52
53 echo '<ul>';
54 echo "<li>Naam: ".$station['namen']['lang']."</li>";
55 echo "<li>Stationscode: ".$station['code']."</li>";
56 echo "<li>Land: ".$station['land']."</li>";
57 echo "<li>Type: ".$station['stationType']."</li>";
58 echo "<li>Latitude: ".$station['lat']."</li>";
59 echo "<li>Longitude: ".$station['lng']."</li>";
60 echo "<li>Synoniemen: ".implode(', ',$station['synoniemen'])."</li>"; // Voegt een array samen (https://php.net/implode)
61 echo "</ul>";
62} // einde loop die steeds herhaald wordt
63
64
65?>