Page 1 sur 1

Problème de cache

Posté : 21 mai 2013, 21:04
par al33er
Bonjour,

J'ai un souci, je voudrais mettre en place un cache qui me permettrait ne n'accéder au webservice de meteorologic qu'une fois tous les six heures quand la ville est "paris" et le pays "france".
Comment je peux faire, s'il vous plaît, je suis nul et actuellement mon application iReveilPro2 qui est gratuite ne récupère pas cette ville car je l'ai pour l'instant exclu car elle génère trop de requêtes vers mon partenaire météo.

Voici le service qui doit être mis à jour.
<?php

  $dom = new DomDocument();
  $ville = $_GET["ville"];
  $pays = $_GET["pays"];
    if ($ville == 'paris' OR $ville == 'Paris'){

        $req = 'http://www.ireveilpro.com/MeteoParis.html';
        echo load($req);
    }
    else {
        echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">';
echo '<plist version="1.0">';
echo '<array>';

        $req = 'http://api.meteorologic.net/forecarss?p='.$ville.'&cn='.$pays;

  $dom->load($req);
  $listeLieux = $dom->getElementsByTagName("item");
  foreach ($listeLieux as $lieux) { 
  	  echo '<dict><key>ville</key><string>';
  	  $listeVilles = $lieux->getElementsByTagName("title");
	  foreach ($listeVilles as $ville) {
	      echo $ville->nodeValue;
	  }
	  echo '</string>';
	  echo '<key>previsions</key><array>';
	  $listeItem = $lieux->getElementsByTagName("weather");
	  foreach ($listeItem as $item) 
	  {
		$pictos_matin = $item->getAttribute("pictos_matin");
		$pictos_midi = $item->getAttribute("pictos_midi");
		$pictos_apmidi = $item->getAttribute("pictos_apmidi");
		$pictos_soir = $item->getAttribute("pictos_soir");
		echo '<dict><key>date</key><string>';
		echo $item->getAttribute("date");
		echo '</string>';
		echo '<key>picto_mat</key><string>';
		if (empty($pictos_matin))
		{
			if (empty($pictos_midi))
			{
				if (empty($pictos_apmidi))
				{
					echo $pictos_soir;
				}
				else
					echo $pictos_apmidi;
			}
			else
				echo $pictos_midi;
		}
		else
			echo $pictos_matin;
		echo '</string>';
		echo '<key>picto_midi</key><string>';
		if (empty($pictos_midi))
		{
			if (empty($pictos_matin))
			{
				if (empty($pictos_apmidi))
				{
					echo $pictos_soir;
				}
				else
					echo $pictos_apmidi;
			}
			else
				echo $pictos_matin;
		}
		else
			echo $pictos_midi;
		echo '</string>';
		echo '<key>picto_apm</key><string>';
		if (empty($pictos_apmidi))
		{
			if (empty($pictos_midi))
			{
				if (empty($pictos_matin))
				{
					echo $pictos_soir;
				}
				else
					echo $pictos_matin;
			}
			else
				echo $pictos_midi;
		}
		else
			echo $pictos_apmidi;
		echo '</string>';
		echo '<key>picto_soir</key><string>';
		if (empty($pictos_soir))
		{
			if (empty($pictos_apmidi))
			{
				if (empty($pictos_midi))
				{
					echo $pictos_matin;
				}
				else
					echo $pictos_midi;
			}
			else
				echo $pictos_apmidi;
		}
		else
			echo $pictos_soir;
		echo '</string>';
		$namepictos_matin = $item->getAttribute("namepictos_matin");
		$namepictos_midi = $item->getAttribute("namepictos_midi");
		$namepictos_apmidi = $item->getAttribute("namepictos_apmidi");
		$namepictos_soir = $item->getAttribute("namepictos_soir");

		echo '<key>phrase_mat</key><string>';
		if (empty($namepictos_matin))
		{
			if (empty($namepictos_midi))
			{
				if (empty($namepictos_apmidi))
				{
					echo $namepictos_soir;
				}
				else
					echo $namepictos_apmidi;
			}
			else
				echo $namepictos_midi;
		}
		else
			echo $namepictos_matin;
		echo '</string>';
		echo '<key>phrase_midi</key><string>';
		if (empty($namepictos_midi))
		{
			if (empty($namepictos_matin))
			{
				if (empty($namepictos_apmidi))
				{
					echo $namepictos_soir;
				}
				else
					echo $namepictos_apmidi;
			}
			else
				echo $namepictos_matin;
		}
		else
			echo $namepictos_midi;
		echo '</string>';
		echo '<key>phrase_apm</key><string>';
		if (empty($namepictos_apmidi))
		{
			if (empty($namepictos_midi))
			{
				if (empty($namepictos_matin))
				{
					echo $namepictos_soir;
				}
				else
					echo $namepictos_matin;
			}
			else
				echo $namepictos_midi;
		}
		else
			echo $namepictos_apmidi;
		echo '</string>';
		echo '<key>phrase_soir</key><string>';
		if (empty($namepictos_soir))
		{
			if (empty($namepictos_apmidi))
			{
				if (empty($namepictos_midi))
				{
					echo $namepictos_matin;
				}
				else
					echo $namepictos_midi;
			}
			else
				echo $namepictos_apmidi;
		}
		else
			echo $namepictos_soir;
		echo '</string>';
		$tempe_matin = $item->getAttribute("tempe_matin");
		$tempe_midi = $item->getAttribute("tempe_midi");
		$tempe_apmidi = $item->getAttribute("tempe_apmidi");
		$tempe_soir = $item->getAttribute("tempe_soir");

		echo '<key>temp_mat</key><string>';
		if (empty($tempe_matin))
		{
			if (empty($tempe_midi))
			{
				if (empty($tempe_apmidi))
				{
					echo round($tempe_soir,0);
				}
				else
					echo round($tempe_apmidi,0);
			}
			else
				echo round($tempe_midi,0);
		}
		else
			echo round($tempe_matin,0);
		echo '</string>';
		echo '<key>temp_midi</key><string>';
		if (empty($tempe_midi))
		{
			if (empty($tempe_matin))
			{
				if (empty($tempe_apmidi))
				{
					echo round($tempe_soir,0);
				}
				else
					echo round($tempe_apmidi,0);
			}
			else
				echo round($tempe_matin,0);
		}
		else
			echo round($tempe_midi,0);
		echo '</string>';
		echo '<key>temp_apm</key><string>';
		if (empty($tempe_apmidi))
		{
			if (empty($tempe_midi))
			{
				if (empty($tempe_matin))
				{
					echo round($tempe_soir,0);
				}
				else
					echo round($tempe_matin,0);
			}
			else
				echo round($tempe_midi,0);
		}
		else
			echo round($tempe_apmidi,0);
		echo '</string>';
		echo '<key>temp_soir</key><string>';
		if (empty($tempe_soir))
		{
			if (empty($tempe_apmidi))
			{
				if (empty($tempe_midi))
				{
					echo round($tempe_matin,0);
				}
				else
					echo round($tempe_midi,0);
			}
			else
				echo round($tempe_apmidi,0);
		}
		else
			echo round($tempe_soir,0);
		echo '</string>';
		echo '<key>adresseDetail</key><string>';
		echo $item->getAttribute("link");
		echo '</string>';
		echo '<key>vent_mat</key><string>';
		echo '';
		echo '</string>';
		echo '<key>vent_apm</key><string>';
		echo '';
		echo '</string>';
		echo '<key>altitude</key><string>';
		echo '';
		echo '</string>';
		echo '<key>latitude</key><string>';
		echo '';
		echo '</string>';
		echo '<key>longitude</key><string>';
		echo '';
		//echo '</string>';
		//echo '<key>adresseDetail</key><string>';
		//echo $item->getAttributes("link");
		echo '</string></dict>';
	  }
	  echo '</array></dict>';
  }

  echo '</array>';
    echo '</plist>';
}
?>
Je vous remercie d'avance pour votre précieuse aide.

Alexandre.