Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

waarde uit bestand lezen externe website

bewerkt zo 27 dec 2015 in Algemeen Posts: 879
In de zomermaanden is het buitenbad open als de temperatuur op deze website => 20 graden aangeeft: http://www.l1.nl/weer
Op de website van het zwembad staat alleen dat er gekeken moet worden naar deze website (http://www.l1.nl/weer) en als die voorspellen dat het 20 graden of meer wordt dan is het buitenbad open. Nu zit ik al een tijdje te denken of dit niet geautomatiseerd kan worden; op de een of andere manier zou je de temp op die website moeten kunnen uitlezen en dan toekennen aan een variable op de eigen site van het zwembad. En met deze variabele zou je dus heel makkelijk bovenaan op de zwembadsite al kunnen aangeven: Buitenbad GESLOTEN of Buitenbad OPEN
Is het uberhaupt mogelijk om zoiets te kunnen realiseren? Ik ben zelf maar even hardop aan het denken hierboven...

Reacties

  • bewerkt zo 27 dec 2015
    PMPosts: 415
    Ik kan het niet echt testen omdat ik de huidige temperatuur van die site niet kan aanpassen, maar dit werkt volgens mij. (als ik op dit moment met 13 graden test klopt het ook :p )

    <?php
    $src = file_get_contents('http://www.l1.nl/weer');
    $temps = explode('<div class="weather-temp">', $src);
    $temp = explode('<div>', $temps[1]);
    $cleantemp = strip_tags(str_replace('??','',$temp[1]));
    echo ($cleantemp >= 20) ? 'open' : 'gesloten';
    ?>

    Beetje deftiger gemaakt, zo gaat de server niet elke keer te werk buiten de sluitingsdagen/uren

    <?php
    $opening = "04-22";
    $sluiting = "12-28";
    $openingsuur = "08:00";
    $sluitingsuur = "19:00";
    if(date("m-d") >= $opening && date("m-d") <= $sluiting && date("H:i") >= $openingsuur && date("H:i") <= $sluitingsuur)
    {
    $src = file_get_contents('http://www.l1.nl/weer');
    $temps = explode('<div class="weather-temp">', $src);
    $temp = explode('<div>', $temps[1]);
    $cleantemp = strip_tags(str_replace('??','',$temp[1]));
    echo ($cleantemp >= 20) ? 'open' : 'gesloten';
    }
    else
    {
    echo 'gesloten';
    }
    ?>
    nuet
  • PMPosts: 879
    Hmmm...had niet gedacht dat de oplossing zo "simpel" was maar dit scriptje moet ik me eens ff gaan bestuderen
  • bewerkt zo 27 dec 2015
    PMPosts: 415
    Dit werkt natuurlijk alleen maar zolang die website niet veranderd qua layout/classes :p

    Wat nog iets deftiger zou zijn, is dat je dit via de database opslaat en middels een cronjob bv om 08:00 en om 13:00 dat bestand/database update.
    Zo heb je toch een re??el beeld, maar je hoeft niet bij elk bezoek de servers te belasten.
  • PMPosts: 879
    Als ik het goed begbrijp, onderstaande regel

    $temp = explode('<div>', $temps[1]);
    Die zegt dat je moet kijken naar de waarde in de 1e div? Want in de div met class weather-temp staan 2 subdivjes, en de 2e is de voorspelling van morgen. Moeten natuurlijk de waarde hebben van de 1e div, en dat wordt hiermee aangegeven???
    $temps[1]
  • middels explode houd je een array over(als er iets te exploden valt), dus gewoon even met var_dump kijken welke je uit het array nodig hebt.
Login of Registreer om te reageren.