Ejemplo n.º 1
0
 /**
  * Récupere les prévision de T°C de l'eau depuis www.meteocity.com sur les 7 prochains joursS
  */
 static function getTempWater($tempWaterInfoURL, $output)
 {
     // $tempWaterInfoURL: http://www.meteocity.com/france/plage/dieppe_p76217/
     // ajax pour avoir les infos: http://www.meteocity.com/ajax/Beach/ajaxChangeBeachView/?date=20151203+&citId=76217&modificateur=1
     $ajaxUrlType = TempWaterGetData::buildMeteocityAjaxURL($tempWaterInfoURL);
     // ajaxURL avec "__date__" à remplacer par un truc du type 20151203
     //$regExGetTempWater = '#([0-9]+)°C#';
     $regExGetTempWater = '#([0-9]+)#';
     $client = new Client();
     $prevTempWater = array();
     $day = new \DateTime("now");
     // attention dû à une erreure coté meteocity, il faut mettre 20151128 pour avoir les infos du 29/11/2015 ...
     $inter1Day = new \DateInterval('P01D');
     $inter1Day->invert = 1;
     $day->add($inter1Day);
     // enlever un jour
     $inter1Day->invert = 0;
     for ($numJour = 0; $numJour <= 5; $numJour++) {
         $ajaxUrl = str_replace("__date__", $day->format('Ymd'), $ajaxUrlType);
         $day->add($inter1Day);
         // ajout d'un jour
         $output->writeln('<info>url : ' . $ajaxUrl . '</info>');
         $crawler = $client->request('GET', $ajaxUrl);
         /*
         <div class="data-temp-eau">
             <div class="title"><h2>Température de l'eau</h2></div>
             <div class="data-number"><span class="icon"></span> 12°C</div>
         </div>
         */
         $divWater = $crawler->filter(".data-temp-eau");
         // get <div class="data-temp-eau" ...>
         $divTempsWater = $divWater->filter(".data-number");
         // and <div class="data-number" ...>
         preg_match($regExGetTempWater, $divTempsWater->text(), $tempWater);
         $prevTempWater[$numJour] = $tempWater[1];
         $output->writeln('<info>temperature de l eau pour le ' . $day->format('d/m/Y') . ': ' . $tempWater[1] . '</info>');
     }
     return $prevTempWater;
 }