Voertuignummers laten zien in php
En ik snap niet hoe ik dat moet doen via KV6.
Dit is het script.
Code (php)
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
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
<!DOCTYPE html>
<html dir="ltr" lang="nl">
<head>
<meta http-equiv="refresh" content="60" />
<meta name="viewport" content="width=device-width,initial-scale=1.0;"/>
<link rel="stylesheet" type="text/css" href="index.css" />
<title>Komt de tram al? Of de bus?</title>
</head>
<body>
<?php
$datum = date("j F Y");
$dagvanweek = date("l");
$arraydag = array(
"Zondag",
"Maandag",
"Dinsdag",
"Woensdag",
"Donderdag",
"Vrijdag",
"Zaterdag"
);
$dagvanweek = $arraydag[date("w")];
$arraymaand = array(
"Januari",
"Februari",
"Maart",
"April",
"Mei",
"Juni",
"Juli",
"Augustus",
"September",
"Oktober",
"November",
"December"
);
$datum = date("j ") . $arraymaand
[date("n") - 1] . date(" Y");
echo "Het is vandaag $dagvanweek, $datum";
?>
<?php
// Haal huidige datum en tijd op
$nu2 = date('H:i');
echo("<div class=\"hoelaat\"><em>Het is nu ".$nu2." uur</em></div>\n");
?>
<div class="schema">
<?php
// De lijninformatie wordt binnengehaald met curl
function ophalen($perron) {
$service_url = 'http://kv78turbo.ovapi.nl/tpc/'.$perron.'/departures';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
if ($curl_response === false) {
$info = curl_getinfo($curl);
curl_close($curl);
die('error occured during curl exec. Additional info: '.var_export($info));
}
curl_close($curl);
// Het JSON-bestand wordt omgezet naar een PHP array
$decoded = json_decode($curl_response,true);
if(isset($decoded->response->status) && $decoded->response->status == 'ERROR') {
die('Er ging iets fout: ' . $decoded->response->errormessage);
}
// Hierin zit DE informatie
$alleinfo = $decoded[$perron];
// Uncomment de volgende regel als je de ruwe data wilt bekijken:
// var_export($decoded[$perron]);
return $alleinfo;
};
function toonZe($alleinfo, $richting) {
echo("<h1>Halte ".$alleinfo['Stop']['TimingPointName']." <em>".$richting."</em></h1><ul>");
$allevoertuigen = $alleinfo["Passes"];
// De array opnieuw sorteren op ExpectedArrivalTime
$tijdstippen = array();
foreach ($allevoertuigen as $voertuig){
$tijdstippen[] = $voertuig['ExpectedArrivalTime'];
}
array_multisort($tijdstippen, SORT_ASC, $allevoertuigen);
foreach($allevoertuigen as $row){
// Deze gebruik je om de aankomsttijd weer te geven (nu niet in gebruik)
$tijd = date_parse($row['ExpectedArrivalTime']);
// Hiermee bereken je het aantal minuten
$rekentijd = strtotime($row['ExpectedArrivalTime']);
$nu = strtotime(date("Y-m-d\TH:i:s"));
if($nu<$rekentijd){
$verschil = round(abs($nu - $rekentijd) / 60,0);
};// Toon alle bussen die binnen 3 kwartier komen
if($verschil <= 900){
if ($verschil == 1){
echo("<li class=\"telaat\"><span>".$row['LinePublicNumber']."</span><h2>".$row['DestinationName50']."</h2><strong>NU!</strong></li>");
} else if ($verschil == 0) {
echo("<li class=\"bijnatelaat\"><span>".$row['LinePublicNumber']."</span><h2>" . $row['DestinationName50'] . "</h2><strong>1 minuut</strong><strong>".$row['JourneyNumber']."</strong></li>\n");
} else {
echo("<li>".$tijd['hour'].":".sprintf("%'.02d", $tijd['minute'])." uur<em><span>".$row['LinePublicNumber']."</span><h2>".$row['DestinationName50']."</h2><h2>".((isset($row['SideCode']))?$row['SideCode']:"")."</h2><strong>(over ".$verschil." minuten)</strong></li>\n");
};
};
};
echo("</ul>\n");
};
$alles = ophalen("37220131");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220137");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220134");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220911");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220917");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220914");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220139");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220912");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220130");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220170");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37224560");
toonZe($alles, "heen");
?>
</div>
</body>
</html>
<html dir="ltr" lang="nl">
<head>
<meta http-equiv="refresh" content="60" />
<meta name="viewport" content="width=device-width,initial-scale=1.0;"/>
<link rel="stylesheet" type="text/css" href="index.css" />
<title>Komt de tram al? Of de bus?</title>
</head>
<body>
<?php
$datum = date("j F Y");
$dagvanweek = date("l");
$arraydag = array(
"Zondag",
"Maandag",
"Dinsdag",
"Woensdag",
"Donderdag",
"Vrijdag",
"Zaterdag"
);
$dagvanweek = $arraydag[date("w")];
$arraymaand = array(
"Januari",
"Februari",
"Maart",
"April",
"Mei",
"Juni",
"Juli",
"Augustus",
"September",
"Oktober",
"November",
"December"
);
$datum = date("j ") . $arraymaand
[date("n") - 1] . date(" Y");
echo "Het is vandaag $dagvanweek, $datum";
?>
<?php
// Haal huidige datum en tijd op
$nu2 = date('H:i');
echo("<div class=\"hoelaat\"><em>Het is nu ".$nu2." uur</em></div>\n");
?>
<div class="schema">
<?php
// De lijninformatie wordt binnengehaald met curl
function ophalen($perron) {
$service_url = 'http://kv78turbo.ovapi.nl/tpc/'.$perron.'/departures';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
if ($curl_response === false) {
$info = curl_getinfo($curl);
curl_close($curl);
die('error occured during curl exec. Additional info: '.var_export($info));
}
curl_close($curl);
// Het JSON-bestand wordt omgezet naar een PHP array
$decoded = json_decode($curl_response,true);
if(isset($decoded->response->status) && $decoded->response->status == 'ERROR') {
die('Er ging iets fout: ' . $decoded->response->errormessage);
}
// Hierin zit DE informatie
$alleinfo = $decoded[$perron];
// Uncomment de volgende regel als je de ruwe data wilt bekijken:
// var_export($decoded[$perron]);
return $alleinfo;
};
function toonZe($alleinfo, $richting) {
echo("<h1>Halte ".$alleinfo['Stop']['TimingPointName']." <em>".$richting."</em></h1><ul>");
$allevoertuigen = $alleinfo["Passes"];
// De array opnieuw sorteren op ExpectedArrivalTime
$tijdstippen = array();
foreach ($allevoertuigen as $voertuig){
$tijdstippen[] = $voertuig['ExpectedArrivalTime'];
}
array_multisort($tijdstippen, SORT_ASC, $allevoertuigen);
foreach($allevoertuigen as $row){
// Deze gebruik je om de aankomsttijd weer te geven (nu niet in gebruik)
$tijd = date_parse($row['ExpectedArrivalTime']);
// Hiermee bereken je het aantal minuten
$rekentijd = strtotime($row['ExpectedArrivalTime']);
$nu = strtotime(date("Y-m-d\TH:i:s"));
if($nu<$rekentijd){
$verschil = round(abs($nu - $rekentijd) / 60,0);
};// Toon alle bussen die binnen 3 kwartier komen
if($verschil <= 900){
if ($verschil == 1){
echo("<li class=\"telaat\"><span>".$row['LinePublicNumber']."</span><h2>".$row['DestinationName50']."</h2><strong>NU!</strong></li>");
} else if ($verschil == 0) {
echo("<li class=\"bijnatelaat\"><span>".$row['LinePublicNumber']."</span><h2>" . $row['DestinationName50'] . "</h2><strong>1 minuut</strong><strong>".$row['JourneyNumber']."</strong></li>\n");
} else {
echo("<li>".$tijd['hour'].":".sprintf("%'.02d", $tijd['minute'])." uur<em><span>".$row['LinePublicNumber']."</span><h2>".$row['DestinationName50']."</h2><h2>".((isset($row['SideCode']))?$row['SideCode']:"")."</h2><strong>(over ".$verschil." minuten)</strong></li>\n");
};
};
};
echo("</ul>\n");
};
$alles = ophalen("37220131");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220137");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220134");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220911");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220917");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220914");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220139");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220912");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220130");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37220170");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php
$alles = ophalen("37224560");
toonZe($alles, "heen");
?>
</div>
</body>
</html>
Het beste is gewoon om met print_r te kijken naar je $row array, zodat je de eerste stap kan zetten om te bepalen waar het voertuignummer staat.
Gewijzigd op 17/12/2015 18:12:30 door - Ariën -
Misschien zijn er andere mensen die er hier meer van weet.
Welke het voertuignummer geeft weet ik niet.
Even een wederzijdese vraag: Waar haal je die halte-codes vandaan, als ik vragen mag?
Want dit ziet er best interesssant uit.
Iemand anders nog een suggestie voor de Voertuignummers en zo
Dat is het eerste wat ik altijd doe als ik zonder documentatie wil weten hoe ik bepaalde data op wil zoeken.
Gewijzigd op 20/12/2015 20:21:28 door - Ariën -
En waar moet ik die precies neer zetten.
Toevoeging op 20/12/2015 20:26:02:
- Ariën - op 20/12/2015 20:22:30:
Op een logische plek waar je array bestaat?
En anders kan je ook 'trial & error' proberen ;-).
En anders kan je ook 'trial & error' proberen ;-).
Maar ben je nog verder gekomen wat ik je in een PM heb verstuurt
Hier kan je prima een print_r in gebruiken. Dan kan je vast wel zien welke element het voertuignummer bevat.
En ja, de haltes heb ik gevonden.
Gewijzigd op 20/12/2015 20:30:05 door - Ariën -
Toevoeging op 20/12/2015 20:43:32:
hoe krijg ik dit goed http://bussenentreinenforum.nl/busvertrektijden/Zaandam/station.php ik krijg die tijd niet goed wat je ziet staan.
DateTime-class ook wel een goede formatting eruithalen?
explode()'n op de 'T'? Misschien kan je met de Toevoeging op 20/12/2015 22:42:31:
- Ariën - op 20/12/2015 20:49:05:
explode()'n op de 'T'? Misschien kan je met de DateTime-class ook wel een goede formatting eruithalen?
hier https://groups.google.com/forum/#!topic/openov/u47XjkSIvps had ik het ook gevraagd maar daar werd ik naar hier verwezen door jou
OpenOV is dan ook niet de juiste plek voor programmeertechnische vragen. Deze kan je daarom prima hier stellen.
Daarom omdat ik geen kv6 heb alleen die kv78turbo.ovapi.nl
Wat is nu precies je vraag? Je gaat behoorlijk van de hak naar de tak toe.
laat maar ik laat het voor nu zo