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.