"","T"=>"",":"=>"");
function form_date($nom_fichf)
{
$modi_fich=filemtime($nom_fichf);
$datet=date("r", $modi_fich);
$lon_dat=strlen($datet);
$lon_dat1=$lon_dat-2;
$lon_dat2=$lon_dat-5;
$resu_da=date('Y-m-d\TH:i:s', $modi_fich).substr($datet, $lon_dat2, 3).":".substr($datet,$lon_dat1, 2);
return $resu_da;
}
function enre($nom_fiche,$contenu_fiche,$telog)
{
global $nom1, $lifi, $vlifi;
$nom_fiche.=".gz";
if(file_exists($nom_fiche))
{
unlink($nom_fiche);
}
if($telog>0)
{
$zp=gzopen($nom_fiche, "w9");
gzwrite($zp, $contenu_fiche);
gzclose($zp);
@chmod($nom_fiche,0777);
$lifi[$vlifi]=$nom_fiche;
$vlifi++;
}
}
/* Cette fonction enregistre les fichiers qui ont été modifiés ou créés */
function enre_fich_modif($loca1, $var_date1)
{
global $terz, $a_enr_fict, $date_ref, $nom_fich, $teloc, $trans1, $adr_fich;
$modi_fich=filemtime($nom_fich);
$datep=date("YmdHis", $modi_fich);
$ou_va=array_search($adr_fich, $loca1);
if($ou_va)
{
/*
Le fichier est déjà référencé. Le programme vérifie si la date a été modifiée.
*/
$date_fi_vu=strtr($var_date1[$ou_va], $trans1);
$loda=strlen($date_fi_vu);
if($loda<14)
{
/* Le format de date ayant changé par rapport à la version 0.01
cette ligne de code assure la compatibilité avec cette ancienne version */
$date_fi_vu.="250000";
}
else
{
$date_fi_vu=substr($date_fi_vu, 0, 14);
/* echo"
date_fi_vu $date_fi_vu
"; */
}
/*test sur la date */
if($datep>$date_fi_vu)
{
/* le fichier a été modifié */
echo"fichier modifie : $nom_fich
";
$a_enr_fict.="\t\n\t\t".$adr_fich."\n";
$a_enr_fict.="\t\t".form_date($nom_fich)."\n\t\n";
$teloc++;
}
}
else
{
/* avec ce if je ne conserve que les fichiers qui n'étaient pas présents */
if($date_ref<$datep)
{
/* echo"date_ref $date_ref
"; */
echo"Le fichier $nom_fich est nouveau
";
$a_enr_fict.="\t\n\t\t".$adr_fich."\n";
$a_enr_fict.="\t\t".form_date($nom_fich)."\n\t\n";
$teloc++;
}
}
}
/* le test ci-dessous permet de savoir si le sitemap_index.gz existe
si c'est le cas il y est ajouté un fichier contenant les dernières modifications
sinon sitemap_index.gz est créé avec les différents fichiers sitemap */
$nomind_rec="sitemap_index.gz";
if(file_exists($nomind_rec))
{
$zp=gzopen($nomind_rec, "r9b");
$contents=gzread($zp,11000000);
gzclose($zp);
$chet=explode("",$contents);
$long=count($chet);
for($is1=1;$is1<$long;$is1++)
{
$chet_adr=explode("",$chet[$is1]);
$resu_exp=explode("",$chet_adr[1]);
$in_adr[$is1]=$resu_exp[0];
$chet_adr=explode("",$chet[$is1]);
$resu_exp=explode("",$chet_adr[1]);
$in_date[$is1]=$resu_exp[0];
}
$telo1=0;
$teloc=0;
$a_enr_fir="\n\n";
$a_enr_fi1t=$a_enr_fir;
$a_enr_fict=$a_enr_fir;
$handle=opendir($rep_deb);
$rot1=0;
while ($file=readdir($handle))
{
if($file != "." && $file != "..")
{
$fi1[$rot1]=$file;
$rot1++;
}
}
if($fi1)
{
/* lecture du fichier xml de niveau 1 */
$nomind_rec_1="sitemap_1.gz";
if(file_exists($nomind_rec_1))
{
$zp=gzopen($nomind_rec_1, "r9b");
$contents1=gzread($zp, 11000000);
gzclose($zp);
$chet1=explode("",$contents1);
$long1=count($chet1);
for($is1=1;$is1<$long1;$is1++)
{
$chet_adr=explode("",$chet1[$is1]);
$resu_exp=explode("",$chet_adr[1]);
$in_adr1[$is1]=$resu_exp[0];
$chet_adr=explode("",$chet1[$is1]);
$resu_exp=explode("",$chet_adr[1]);
$in_date1[$is1]=$resu_exp[0];
}
}
else
{
$in_adr1=array("");
$in_date1=array("");
}
sort($fi1);
for($i1=0;$i1<$rot1;$i1++)
{
/* $file=strtr($fi1[$i1], $transfo); */
$file=$fi1[$i1];
$ser_che_1=explode(".",$file);
if(!(in_array($file, $per)))
{
$a_enr_fi2t=$a_enr_fir;
$lcon1=count($ser_che_1);
if($lcon1==1)
{
$don2=$rep_deb.$file;
if(is_dir($don2))
{
/* lecture du fichier xml de niveau 2 */
$nomind_rec_2=$rep_deb."sitemap_".$file.".gz";
if(file_exists($nomind_rec_2))
{
$zp=gzopen($nomind_rec_2, "r9b");
$contents2=gzread($zp, 11000000);
gzclose($zp);
$chet2=explode("",$contents2);
$long2=count($chet2);
for($is2=1;$is2<$long2;$is2++)
{
$chet_adr=explode("",$chet2[$is2]);
$resu_exp=explode("",$chet_adr[1]);
$in_adr2[$is2]=$resu_exp[0];
$chet_adr=explode("",$chet2[$is2]);
$resu_exp=explode("",$chet_adr[1]);
$in_date2[$is2]=$resu_exp[0];
}
}
else
{
$in_adr2=array("");
$in_date2=array("");
}
$handle2=opendir($don2);
$telo2=0;
$rot2=0;
$fi2=array("");
while ($file2=readdir($handle2))
{
if($file2 != "." && $file2 != "..")
{
$fi2[$rot2]=$file2;
$rot2++;
}
}
if($fi2)
{
sort($fi2);
for ($i2=0;$i2<$rot2;$i2++)
{
$file2=$fi2[$i2];
$ser_che_2=explode(".",$file2);
if(!in_array($file2, $per))
{
$a_enr_fi3t=$a_enr_fir;
$a_enr_fi4t=$a_enr_fir;
$lcon2=count($ser_che_2);
if($lcon2==1)
{
/* niveau 3 */
$don3=$rep_deb.$file."/".$file2;
if(is_dir($don3))
{
/* lecture du fichier xml de niveau 3 */
$nomind_rec_3="sitemap_".$file2.".gz";
if(file_exists($nomind_rec_3))
{
$zp=gzopen($nomind_rec_3, "r9b");
$contents3=gzread($zp, 11000000);
gzclose($zp);
$chet3=explode("",$contents3);
$long3=count($chet3);
for($is3=1;$is3<$long3;$is3++)
{
$chet_adr=explode("",$chet3[$is3]);
$resu_exp=explode("",$chet_adr[1]);
$in_adr3[$is3]=$resu_exp[0];
$chet_adr=explode("",$chet3[$is3]);
$resu_exp=explode("",$chet_adr[1]);
$in_date3[$is3]=$resu_exp[0];
}
}
else
{
$in_adr3=array("");
$in_date3=array("");
}
/* lecture du fichier xml de niveau 4 */
$nomind_rec_4="sitemap_".$file2."_2.gz";
/* echo" fichier testé niveau 4 $nomind_rec_4
"; */
if(file_exists($nomind_rec_4))
{
$zp=gzopen($nomind_rec_4, "r9b");
$contents4=gzread($zp, 11000000);
gzclose($zp);
$chet4=explode("",$contents4);
$long4=count($chet4);
for($is4=1;$is4<$long4;$is4++)
{
$chet_adr=explode("",$chet4[$is4]);
$resu_exp=explode("",$chet_adr[1]);
$in_adr4[$is4]=$resu_exp[0];
$chet_adr=explode("",$chet4[$is4]);
$resu_exp=explode("",$chet_adr[1]);
$in_date4[$is4]=$resu_exp[0];
}
}
else
{
$in_adr4=array("");
$in_date4=array("");
}
$handle3=opendir($don3);
$telo3=0;
$telo4=0;
$rot3=0;
$fi3=array("");
while ($file3=readdir($handle3))
{
if($file3 != "." && $file3 != "..")
{
$fi3[$rot3]=$file3;
$rot3++;
}
}
if($fi3)
{
sort($fi3);
for ($i3=0;$i3<$rot3;$i3++)
{
$file3=$fi3[$i3];
$ser_che_3=explode(".",$file3);
if(!in_array($file3, $per))
{
$lcon3=count($ser_che_3);
if($lcon3==1)
{
/* niveau 4 */
$don4=$rep_deb.$file."/".$file2."/".$file3;
if(is_dir($don4))
{
$handle4=opendir($don4);
$telo4=0;
$rot4=0;
$fi4=array("");
while($file4=readdir($handle4))
{
if($file4 != "." && $file4 != "..")
{
$fi4[$rot4]=$file4;
$rot4++;
}
}
if($fi4)
{
sort($fi4);
for ($i4=0;$i4<$rot4;$i4++)
{
$file4=$fi4[$i4];
$ser_che_4=explode(".",$file4);
if(!in_array($file4, $per))
{
$lcon4=count($ser_che_4);
if($lcon4==1)
{
$don5=$rep_deb.$file."/".$file2."/".$file3."/".$file4;
if(is_dir($don5))
{
/* niveau 5 */
echo"LIMITE : Le programme n'indexe les sous-repertoires que sur trois niveau.\n";
echo"Les fichiers de $don5 ne seront donc pas indexes mais vous pouvez modifier le programme pour les indexer
";
}
}
else
{
/* niveau 4 */
$lcon4--;
$fiim1=$ser_che_4[$lcon4];
/* A supprimer si toutes vos extensions sont en minuscules. */
$fiim1=strtolower($fiim1);
$nom_fich=$rep_deb.$file."/".$file2."/".$file3."/".$file4;
$adr_fich=$adresse_site.$file."/".$file2."/".$file3."/".$file4;
if(!in_array($fiim1, $perim))
{
enre_fich_modif($in_adr4, $in_date4);
}
}
}
}
}
}
}
else
{
/* niveau 3 */
$lcon3--;
$fiim1=$ser_che_3[$lcon3];
/* A supprimer si toutes vos extensions sont en minuscules. */
$fiim1=strtolower($fiim1);
$nom_fich=$rep_deb.$file."/".$file2."/".$file3;
$adr_fich=$adresse_site.$file."/".$file2."/".$file3;
if(!in_array($fiim1, $perim))
{
enre_fich_modif($in_adr3, $in_date3);
}
}
}
}
}
/* juste apres la fin du while de niveau 3 enregistrement du fichier niveau 3*/
/*
$a_enr_fi3t.="\n";
$nom1="sitemap_".$file2;
enre($nom1,$a_enr_fi3t,$telo3);
*/
/* Juste apres la fin du while de niveau 3 enregistrement du fichier niveau 4.
Tous les fichiers des differents sous-repertoires d'un dossier niveau 3 sont dans
un meme fichier .
S'il avait ete fait un repertoire pour chaque dossier de niveau 4 le nombre de
fichier sitemap pour le portail Orvinfait aurait depasse mille or mille est
la limite fixe par Google.
*/
/*
$a_enr_fi4t.="\n";
$nom1="sitemap_".$file2."_2.gz";
enre($nom1,$a_enr_fi4t,$telo4);
*/
}
}
else
{
/* niveau 2 */
$lcon2--;
$fiim1=$ser_che_2[$lcon2];
/* A supprimer si toutes vos extensions sont en minuscules. */
$fiim1=strtolower($fiim1);
$nom_fich=$rep_deb.$file."/".$file2;
$adr_fich=$adresse_site.$file."/".$file2;
if(!in_array($fiim1, $perim))
{
enre_fich_modif($in_adr2, $in_date2);
}
}
}
}
}
/* juste apres la fin du while de niveau 2 enregistrement du fichier niveau 2 */
/*
$a_enr_fi2t.="\n";
$nom1="sitemap_".$file.".gz";
enre($nom1,$a_enr_fi2t,$telo2);
*/
}
}
else
{
$lcon1--;
$fiim1=$ser_che_1[$lcon1];
/* A supprimer si toutes vos extensions sont en minuscules. */
$fiim1=strtolower($fiim1);
/* enregistrement des valeurs dans un tableau pour niveau 1*/
if(!(in_array($fiim1, $perim)))
{
$rge_ade=explode("sitemap_",$file);
$lcona=count($rge_ade);
if($lcona==1)
{
$nom_fich=$rep_deb.$file;
$adr_fich=$adresse_site.$file;
enre_fich_modif($in_adr1, $in_date1);
}
}
}
}
}
}
/*
Création du fichier sitemap_a_orvinfait.gz
Ce fichier contient la liste des derniers fichiers modifiés
ou créés
*/
$a_enr_fict.="\n";
$nom1="sitemap_a_orvinfait";
enre($nom1,$a_enr_fict,$teloc);
/*
$a_enr_fi1t.="\n";
$nom1="sitemap_1.gz";
enre($nom1,$a_enr_fi1t,$telo1);
*/
/*
Mise en place du fichier sitemap_a_orvinfait.gz
ou remplacement de la date de ce fichier dans
sitemap_index.gz
*/
$a_enr_fi_ind="\n\n";
$datet=date("r");
$lon_dat=strlen($datet);
$lon_dat1=$lon_dat-2;
$lon_dat2=$lon_dat-5;
$date_cre=date('Y-m-d\TH:i:s').substr($datet, $lon_dat2, 3).":".substr($datet,$lon_dat1, 2);
$date_cre2="\t\t".$date_cre."\n\t\n";
$adr_fich=$adresse_site."sitemap_a_orvinfait.gz";
$ou_va=array_search($adr_fich, $in_adr);
$nomind="sitemap_index.gz";
unlink($nomind);
if($ou_va)
{
$in_date[$ou_va]=$date_cre;
}
else
{
$a_enr_fi_ind.="\t\n\t\t".$adr_fich."\n".$date_cre2;
}
for($i=1;$i<$long;$i++)
{
$a_enr_fi_ind.="\t\n\t\t".$in_adr[$i]."\n"."\t\t".$in_date[$i]."\n\t\n";
}
$a_enr_fi_ind.="";
$nomind="sitemap_index.gz";
$site_map_fi=gzopen($nomind,"w9b");
gzwrite($site_map_fi, $a_enr_fi_ind);
gzclose($site_map_fi);
@chmod($nomind,0777);
}
else
{
/* sitemap_index.gz n'exite pas. Il est donc créé avec les fichiers sitmaps */
$telo1=0;
$a_enr_fir="\n\n";
$a_enr_fi1t=$a_enr_fir;
$handle=opendir($rep_deb);
$rot1=0;
while ($file=readdir($handle))
{
if($file != "." && $file != "..")
{
$fi1[$rot1]=$file;
$rot1++;
}
}
if($fi1)
{
sort($fi1);
for($i1=0;$i1<$rot1;$i1++)
{
/* $file=strtr($fi1[$i1], $transfo); */
$file=$fi1[$i1];
/* echo"$file
";*/
$ser_che_1=explode(".",$file);
if(!(in_array($file, $per)))
{
$a_enr_fi2t=$a_enr_fir;
$lcon1=count($ser_che_1);
if($lcon1==1)
{
$don2=$rep_deb.$file;
if(is_dir($don2))
{
$handle2=opendir($don2);
$telo2=0;
$rot2=0;
$fi2=array("");
while ($file2=readdir($handle2))
{
if($file2 != "." && $file2 != "..")
{
$fi2[$rot2]=$file2;
$rot2++;
}
}
if($fi2)
{
sort($fi2);
for ($i2=0;$i2<$rot2;$i2++)
{
$file2=$fi2[$i2];
$ser_che_2=explode(".",$file2);
if(!in_array($file2, $per))
{
$a_enr_fi3t=$a_enr_fir;
$a_enr_fi4t=$a_enr_fir;
$lcon2=count($ser_che_2);
if($lcon2==1)
{
/* niveau 3 */
$don3=$rep_deb.$file."/".$file2;
if(is_dir($don3))
{
$handle3=opendir($don3);
$telo3=0;
$telo4=0;
$rot3=0;
$fi3=array("");
while ($file3=readdir($handle3))
{
if($file3 != "." && $file3 != "..")
{
$fi3[$rot3]=$file3;
$rot3++;
}
}
if($fi3)
{
sort($fi3);
for ($i3=0;$i3<$rot3;$i3++)
{
$file3=$fi3[$i3];
$ser_che_3=explode(".",$file3);
if(!in_array($file3, $per))
{
$lcon3=count($ser_che_3);
if($lcon3==1)
{
/* niveau 4 */
$don4=$rep_deb.$file."/".$file2."/".$file3;
if(is_dir($don4))
{
$handle4=opendir($don4);
$telo4=0;
$rot4=0;
$fi4=array("");
while($file4=readdir($handle4))
{
if($file4 != "." && $file4 != "..")
{
$fi4[$rot4]=$file4;
$rot4++;
}
}
if($fi4)
{
sort($fi4);
for ($i4=0;$i4<$rot4;$i4++)
{
$file4=$fi4[$i4];
$ser_che_4=explode(".",$file4);
if(!in_array($file4, $per))
{
$lcon4=count($ser_che_4);
if($lcon4==1)
{
$don5=$rep_deb.$file."/".$file2."/".$file3."/".$file4;
if(is_dir($don5))
{
/* niveau 5 */
echo"LIMITE : Le programme n'indexe les sous-repertoires que sur trois niveau.\n";
echo"Les fichiers de $don5 ne seront donc pas indexes mais vous pouvez modifier le programme pour les indexer
";
}
}
else
{
/* niveau 4 */
$lcon4--;
$fiim1=$ser_che_4[$lcon4];
/* A supprimer si toutes vos extensions sont en minuscules. */
$fiim1=strtolower($fiim1);
if(!in_array($fiim1, $perim))
{
$a_enr_fi4t.="\t\n\t\t".$adresse_site.$file."/".$file2."/".$file3."/".$file4."\n";
$nom_fich=$rep_deb.$file."/".$file2."/".$file3."/".$file4;
$a_enr_fi4t.="\t\t".form_date($nom_fich)."\n\t\n";
$telo4++;
}
}
}
}
}
}
}
else
{
/* niveau 3 */
$lcon3--;
$fiim1=$ser_che_3[$lcon3];
/* A supprimer si toutes vos extensions sont en minuscules. */
$fiim1=strtolower($fiim1);
if(!in_array($fiim1, $perim))
{
$a_enr_fi3t.="\t\n\t\t".$adresse_site.$file."/".$file2."/".$file3."\n";
$nom_fich=$rep_deb.$file."/".$file2."/".$file3;
$a_enr_fi3t.="\t\t".form_date($nom_fich)."\n\t\n";
$telo3++;
}
}
}
}
}
/* juste apres la fin du while de niveau 3 enregistrement du fichier niveau 3*/
$a_enr_fi3t.="\n";
$nom1="sitemap_".$file2;
enre($nom1,$a_enr_fi3t,$telo3);
/* Juste apres la fin du while de niveau 3 enregistrement du fichier niveau 4.
Tous les fichiers des differents sous-repertoires d'un dossier niveau 3 sont dans
un meme fichier .
S'il avait ete fait un repertoire pour chaque dossier de niveau 4 le nombre de
fichier sitemap pour le portail Orvinfait aurait depasse mille or mille est
la limite fixe par Google.
*/
$a_enr_fi4t.="\n";
$nom1="sitemap_".$file2."_2";
enre($nom1,$a_enr_fi4t,$telo4);
}
}
else
{
/* niveau 2 */
$lcon2--;
$fiim1=$ser_che_2[$lcon2];
/* A supprimer si toutes vos extensions sont en minuscules. */
$fiim1=strtolower($fiim1);
if(!in_array($fiim1, $perim))
{
$a_enr_fi2t.="\t\n\t\t".$adresse_site.$file."/".$file2."\n";
$nom_fich=$rep_deb.$file."/".$file2;
$a_enr_fi2t.="\t\t".form_date($nom_fich)."\n\t\n";
$telo2++;
}
}
}
}
}
/* juste apres la fin du while de niveau 2 enregistrement du fichier niveau 2 */
$a_enr_fi2t.="\n";
$nom1="sitemap_".$file;
enre($nom1,$a_enr_fi2t,$telo2);
}
}
else
{
/* enregistrement des valeurs dans un tableau pour niveau 1*/
$lcon1--;
$fiim1=$ser_che_1[$lcon1];
/* A supprimer si toutes vos extensions sont en minuscules. */
$fiim1=strtolower($fiim1);
if(!(in_array($fiim1, $perim)))
{
$rge_ade=explode("sitemap_",$file);
$lcona=count($rge_ade);
if($lcona==1)
{
$a_enr_fi1t.="\t\n\t\t".$adresse_site.$file."\n";
$nom_fich=$rep_deb.$file;
$a_enr_fi1t.="\t\t".form_date($nom_fich)."\n\t\n";
$telo1++;
}
}
}
}
}
}
$a_enr_fi1t.="\n";
$nom1="sitemap_1";
/* enre($nom1,$a_enr_fi1t,$telo1); */
$a_enr_fi_ind="\n\n";
$datet=date("r");
$lon_dat=strlen($datet);
$lon_dat1=$lon_dat-2;
$lon_dat2=$lon_dat-5;
$date_cre=date('Y-m-d\TH:i:s').substr($datet, $lon_dat2, 3).":".substr($datet,$lon_dat1, 2);
$date_cre="\t\t".$date_cre."\n\t\n";
for($i=0;$i<$vlifi;$i++)
{
$a_enr_fi_ind.="\t\n\t\t".$adresse_site.$lifi[$i]."\n".$date_cre;
}
$a_enr_fi_ind.="";
$nomind="sitemap_index.gz";
if(file_exists($nomind))
{
unlink($nomind);
}
$zp=gzopen($nomind, "w9");
gzwrite($zp, $a_enr_fi_ind);
gzclose($zp);
@chmod($nomind,0777);
echo"termine
";
}
?>