Hallo allemaal hoe moet ik de voertuignummers van de bussen laten zien in PHP script.

En ik snap niet hoe ik dat moet doen via KV6.

Dit is het script.


<!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>
Geen idee, ik weet niet hoe de data samen gesteld wordt.
Het beste is gewoon om met [php]print_r[/php] te kijken naar je $row array, zodat je de eerste stap kan zetten om te bepalen waar het voertuignummer staat.
Oke ik ga er van de week even mee aan de gang.

Misschien zijn er andere mensen die er hier meer van weet.
Ik zie wel in de Passes-array een aantal bussen vermeld staan, met een hoop eigenschappen.
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
Je array even uitlezen met print_r() ?
Dat is het eerste wat ik altijd doe als ik zonder documentatie wil weten hoe ik bepaalde data op wil zoeken.
En waar moet ik die precies neer zetten.
Op een logische plek waar je array bestaat?

En anders kan je ook 'trial & error' proberen ;-).
En dat is?

[size=xsmall]Toevoeging op 20/12/2015 20:26:02:[/size]

- 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 ;-).


Maar ben je nog verder gekomen wat ik je in een PM heb verstuurt
David, ik zie op lijn 82 een mooie foreach die $allevoertuigen uitleest, en de data per iteratie in $row verwerkt.

Hier kan je prima een [php]print_r[/php] in gebruiken. Dan kan je vast wel zien welke element het voertuignummer bevat.

En ja, de haltes heb ik gevonden.

Reageren