jpg/png bestand

Status
Niet open voor verdere reacties.

davidmeyer25

Gebruiker
Lid geworden
16 feb 2013
Berichten
95
Ik had een vraag is er een mogelijkheid om een jpg/png bestand te laten zien als er een bus vertrekt van een halte die moet alleen worden getoond als hij echt vertrekt.

en dit is voor een php script.

En welke code heb ik daar voor nodig.

Want ik kan daar geen code voor vinden.
 
Ik neem aan dat je die informatie via een API verkrijgt, dan zal er vanuit die API een "state" van de bus mee moeten worden gegevens zodat je d.m.v. een IF-statement een afbeelding kunt tonen (Of je noemt je afbeeldingen naar de waarde van de state zodat je voor elke state een afbeelding hebt)
 
dit krijg ik via php script

PHP:
<!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
// 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[MessageContent] . "</strong></li>\n");
} else {
echo("<li>" . $tijd[hour] . ":" . sprintf("%'.02d", $tijd[minute]) . " uur<em><span>" .$row[LinePublicNumber] . "</span><h2>" . $row[DestinationName50] . "</h2><h2>" . $row[SideCode] . "</h2><strong>(over " . $verschil . " minuten)</strong></li>\n");
};
};
};
echo("</ul>\n");
};
$alles = ophalen("37323910");
toonZe($alles, "heen");
?>
</div>
<div class="schema">
<?php	
$alles = ophalen("37324580");
toonZe($alles, "terug");
?>
</div>
</body>
</html>

Maar het wordt volgens mij niet meegezonden met dat.
 
Laatst bewerkt door een moderator:
De data die geleverd wordt van uit de CURL-request is voor een leek lastig te interpreteren, als ik het zo bekijk dan krijg je een lijst met bussen terug die langs die halte komen.

Je zou dus een check kunnen doen op de verwachtte "ExpectedArrivalTime" en de "ExpectedDepartureTime" in combinatie met de huidige tijd. De vraag is natuurlijk hoe real-time de gegevens zijn of je daadwerkelijk kunt aangeven of een bus op dit moment bij de halte staat.
 
Daarom vraag ik het eerst of dat mogelijk zou zijn want ik heb al gezocht naar dit of dat kan maar ik kon niks vinden.
 
Jij gebruikt deze API dus dan neem ik aan dat je ook weet wat de mogelijkheden zijn :( Als deze API niet de gegevens kan verstrekken die jij nodig hebt voor je functionaliteit dan zul je naar een alternatieve API moeten zoeken of het idee moeten laten varen.

In feite is het antwoord op je vraag: Ja, dat kan.

Het gaat immers om een simpel IF-statement waarmee je een afbeelding gaat tonen of verbergen. De achterliggende vraag is welke gegevens je nodig hebt om dat statement te kunnen maken.
 
Dag David,

Ik zie je regelmatig op dit forum verschijnen, maar waarom probeer je zelf niet eens wat? Daar leer je van! Ik zie je vaak kant en klare oplossingen vragen, maar het is ook toch positief als je zelf wat probeert?

Ik weet zeker dat als wat wat googled en wat probeert, dat je jezelf een stuk verder komt.... ;)
Daarna kan je altijd hulp vragen....
 
ik heb de beginners fouten 60/64 uitgehaald het betreft [''] waar geen cotes stonden kijk ook naar indenteren dit betekend een trapstructuur laten zien om zo snel door de code te kunnen lezen.
logische fouten of aanpassing heb ik niet gedaan:
  • Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
  • Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in


PHP:
<!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
        // 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['MessageContent']."</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("37323910");
        toonZe($alles, "heen");
    ?>
    </div>
    <div class="schema">
    <?php   
        $alles = ophalen("37324580");
        toonZe($alles, "terug");
    ?>
    </div>
</body>
</html>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan