NS API en PHP

Overzicht

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 5 6 7 volgende »

David Meijer

David Meijer

16/12/2013 17:59:33
Anchor link
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
<?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 / Bestemming</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('php_ns_trains.class.php');
    define(API_USER, '*********');
    define(API_PASSWORD, '*********');
    $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'];  
        
                $i++;        
                     if($soort == ""){
                        $soort = "Trein";
                    }

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


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

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

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

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

                    if($bestemming == "Den Haag C / Rotterdam C"){
                        $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 "<b>Let op:</b><font color='red'> <u>Spoorwijziging!</u></font>"; ?></div>
                                        <?php
                                        }
                                        ?>

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

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

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

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

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

                                        <div id="bus">Op dit traject vindt busvervoer plaats</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>



- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Gewijzigd op 16/12/2013 18:02:05 door - Ariën -
 
PHP hulp

PHP hulp

19/04/2024 19:37:39
 
- Ariën  -
Beheerder

- Ariën -

16/12/2013 18:03:26
Anchor link
Leuk dat je een lap code post (zie ook mijn modedit hierboven), maar we werken hier niet als een afhaalbalie. ;-)
Ik heb je net verteld hoe je die kan inbouwen, dus probeer het eens.
Gewijzigd op 16/12/2013 18:03:58 door - Ariën -
 
David Meijer

David Meijer

18/01/2014 20:01:02
Anchor link
Hallo is er een manier om de actuele vertrektijden van bijvoorbeeld van Gouda Goverwelle op twitter te laten zien.
 
- Ariën  -
Beheerder

- Ariën -

18/01/2014 20:16:03
Anchor link
Op wat voor manier? Wou je 8 tweets per uur plaatsen met de recente vertrektijden?

Onthoud wel dat plaatsen van een hoop tweets in een uur een blokkade kan opleveren, vanwege spamming, mocht je het uit willen breiden naar meerdere stations.
Gewijzigd op 18/01/2014 20:22:02 door - Ariën -
 
David Meijer

David Meijer

18/01/2014 20:53:39
Anchor link
Ik wil alleen zeg maar als er vertraging is of een spoorwijziging of dat hij niet rijd dat er dan een tweet van komt.
 
- Ariën  -
Beheerder

- Ariën -

18/01/2014 21:37:19
Anchor link
Dat kan je doen, een kwestie van uitlezen met SimpleXML, en bij een afwijking (Opmerkingen-elementen/of vertraging) een tweet plaatsen. Om tweets te plaatsen gebruik ik: https://github.com/abraham/twitteroauth. Sla ook even de treinnummers in de database op om te voorkomen dat inmiddels getweette berichten niet nogmaals getweet worden.

Maar begin bij het begin en probeer eerst maar eens de XML uit te lezen met SimpleXML.
 
David Meijer

David Meijer

18/01/2014 21:49:39
Anchor link
Ik ga dat vanavond of morgen even er na kijken.
 
- Ariën  -
Beheerder

- Ariën -

28/01/2014 23:13:36
Anchor link
Vraagstelling uit het vorige topic welke gesloten is:

David Meijer op 28/01/2014 22:24:14:
Hoe kan ik de verstoringen van de NS die via de deze site >>> http://www.ns.nl/storingen/index.rss naar me eigen site te doen. net zo als deze site >>>> http://www.rijdendetreinen.nl/storingen/7676-28-januari-2014-defecte-spoorbrug-alphen-a-d-rijn-utrecht-c
 
David Meijer

David Meijer

30/07/2014 12:43:55
Anchor link
Hallo

hier ben ik weer ik had een vraag hoe moet ik de dvs laten zien ik heb een ovh vps server maar daar haalt hij geen bestanden op en stefan van opengeo zegt met deze >>> curl http://acc.data.ndovloket.nl/
 
- Ariën  -
Beheerder

- Ariën -

30/07/2014 12:51:43
Anchor link
Voor de niet-ingewijden hier: De DVS staat los van de NS-API en wordt via een TCP-verbinding verspreid naar het NDOV-loket, waar klanten deze data kunnen afnemen. Ze dienen zelf een API te bouwen, en daarvoor kan gebruik worden gemaakt van dit Python-script.
De DVS is de directe datastroom die ze ook gebruiken op de informatieborden etc. en komt direct bij de treindienstleiding vandaan, i.p.v. uit een planning, zoals bij de NS-API

Ikzelf heb het geheel al draaiende gekregen op een test-server, en de output krijg ik netjes in JSON-formaat.
Een voorbeeld kan je vinden op deze link.
Gewijzigd op 30/07/2014 12:54:44 door - Ariën -
 
David Meijer

David Meijer

30/07/2014 12:55:16
Anchor link
dat probeer ik ook maar ik krijgt dat niet te zien
 
- Ariën  -
Beheerder

- Ariën -

30/07/2014 12:57:13
Anchor link
Dan raad ik aan om wat meer te vertellen over wat je al gedaan hebt, en wat je nu precies probeert?

Dit is tot nu toe behoorlijk gissen.
Gewijzigd op 30/07/2014 12:57:29 door - Ariën -
 
David Meijer

David Meijer

30/07/2014 13:08:05
Anchor link
ik heb het zo gedaan volgens dit https://github.com/geertw/rdt-infoplus-dvs#installatie vanaf het begin

maar verder kom ik niet dan dit zien >>> 2014-07-30 11:29:33,089 [MainThread ] [__main__ ] INFO Server start op
2014-07-30 11:29:33,092 [MainThread ] [__main__ ] INFO Injector geinitialiseerd
2014-07-30 11:29:33,092 [ClientThread ] [__main__ ] INFO Client thread gestart
2014-07-30 11:29:33,092 [ClientThread ] [__main__ ] INFO Client thread gereed voor verbindingen (tcp://37.59.102.55:8120)
2014-07-30 11:29:33,095 [InjectorThread ] [__main__ ] INFO Injector thread gereed (tcp://37.59.102.55:8140)
2014-07-30 11:29:33,136 [MainThread ] [__main__ ] INFO GC thread geinitialiseerd
2014-07-30 11:29:33,137 [MainThread ] [__main__ ] INFO Gereed voor ontvangen DVS berichten (van server tcp://post.ndovloket.nl:7660)
2014-07-30 11:29:33,137 [GarbageThread ] [__main__ ] INFO Initiele garbage collecting
2014-07-30 11:30:33,143 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:30:33,151 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:31:33,152 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:31:33,157 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:32:33,158 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:32:33,162 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:33:33,163 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:33:33,167 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:34:33,167 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:34:33,172 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:35:33,172 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:35:33,179 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:36:33,180 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:36:33,184 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:37:33,185 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:37:33,189 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:38:33,190 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:38:33,195 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:39:33,195 [GarbageThread ] [__main__ ] INFO Periodieke garbage collecting
2014-07-30 11:39:33,199 [GarbageThread ] [__main__ ] INFO Statistieken: station_store=0, trein_store=0, status=UNKNOWN
2014-07-30 11:39:33,200 [GarbageThread ] [__main__ ] INFO Ontvangen berichten (10m window): 0 (0.00/m)
2014-07-30 11:39:33,200 [GarbageThread ] [__main__ ] WARNING Downtime gedetecteerd, 0 berichten ontvangen (10m window)


- Aar -:
Overbodige lap logging weggehaald om het topic leesbaarder te houden.
Gewijzigd op 30/07/2014 17:50:54 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

30/07/2014 13:11:08
Anchor link
Is die hele lap herhalende errors nou wel nodig?
En wat heb je allemaal al gedaan? Daar heb ik je nog niks over gehoord.
 
David Meijer

David Meijer

30/07/2014 13:13:55
Anchor link
ik heb zeg maar zo als dvs-server.yaml aangepast voor de server van ndovloket en voor mijn eigen client server van ovh vps
 
- Ariën  -
Beheerder

- Ariën -

30/07/2014 13:17:28
Anchor link
Wat staat er in je config?

En wat gebeurt er als je dvs-daemon.py uitvoert in je commandline?
 
David Meijer

David Meijer

30/07/2014 13:19:18
Anchor link
dan krijg ik dat te zien wat ik daarnet stuurde
 
- Ariën  -
Beheerder

- Ariën -

30/07/2014 13:21:07
Anchor link
- Aar - op 30/07/2014 13:17:28:
Wat staat er in je config?
 
David Meijer

David Meijer

30/07/2014 13:24:02
Anchor link
---
bindings:
dvs_server: tcp://post.ndovloket.nl:7660
client_server: tcp://37.59.102.55:8120
injector_server: tcp://37.59.102.55:8140

logging:
log_config: config/logging.yaml
...

staat er dit en dit is van het bestandje dvs-server.yaml
 
- Ariën  -
Beheerder

- Ariën -

30/07/2014 13:27:24
Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
---
bindings:
    dvs_server: tcp://post.ndovloket.nl:7660
    client_server: tcp://0.0.0.0:8120
    injector_server: tcp://0.0.0.0:8140

logging:
    log_config: config/logging.yaml
...

Deze heb ik hier.
Ik gebruik niet de ZeroMQ-server. (moet zelf nog eens kijken hoe dit werkt)
Gewijzigd op 30/07/2014 13:29:09 door - Ariën -
 

Pagina: « vorige 1 2 3 4 5 6 7 volgende »

 

Dit topic is gesloten.



Overzicht

 
 

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.