Vous n'êtes pas identifié.
Voici un petit générateur de sitemap XML très simple à utiliser.
1-Créez un fichier nommé sitemap.php et collez y le code ci dessous.
2-Editer juste les variables suivantes:
-------------------------------------------
$ExtensionsAutorises= array('php','php3','html','htm');
Placez ici les extensions autorisées à être listé séparé par une virgule et une simple quote ,'blabla'.
-------------------------------------------
$DossiersInterdits = array('dossier1','dossier2','dossier3','etc...');
Placez ici les dossiers qui ne sont pas autorisées à être listé séparé par une virgule et une simple quote ,'blabla'.
-------------------------------------------
$FichiersInterdits = array('fichier1.php','fichier2.php','fichier3.php','etc..');
Placez ici les fichiers qui ne sont pas autorisées à être listé séparé par une virgule et une simple quote ,'blabla'.
-------------------------------------------
3-Envoyez ce fichier sur votre serveur
4-Rendez vous à l'adresse -http://monsite.free.fr/sitemap.php
5-Votre fichier sitemap.xml à été créé, allé voir sur -http://monsite.free.fr/sitemap.xml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
body {
text-align: left;
background-color: #FFFFFF;
}
.center {
text-align: center;
}
.italic {
font-style: italic;
}
</style>
<title>Générateur de fichier sitemap</title>
</head>
<body id="haut">
<h2 class="center">Générateur de sitemap en xml</h2>
<h2>Listages des urls autorisés pour le sitemap</h2>
<?php
//set_time_limit(60*10); pas forcément utile : fixe le temps d'exécution du script à 10 minutes (10*60 seconde)
define('LIMITLIENPARFICHIER',1000); // 1000 liens maximums dans chaque fichier
define('LIMITLIENINDEXE',50000); // 50 000 liens maximum au total
// générateur de fichiers sitemap.xml pour google
// 1- éditer les fichiers, extensions et dossiers interdits ainsi que leur mode de fonctionnement (0 par défaut) ( sans /)
// 2- éditez la variable $compressionGZ pour avoir ou non une compression sur vos fichiers (valable uniquement si vous avez plus de 1000 liens)
// 3- uploadez le fichier sur votre compte et lancez à partir d'un navigateur
/** note :
Si vous avez
./image/
./image/ete
./image/hiver
alors si vous mettez "image" dans dossier interdit, tous les sous dossiers seront interdits
si vous mettez "hiver" alors le dossier hiver sera interdit
ne mettez pas "/image/hiver"
*/
$racine= 'http://'.$_SERVER['HTTP_HOST'];
$compressionGZ = false; // false pas de compression true compression
$Goption=0;// option de filtrage (laissez 0 si vous ne comprenez pas)
// 0 - filtrage bit à bit (du type dossiercherche==dossierencour)
// 1 - présence d'une partie du mot dans le dossier
// 2 - filtrage par expressions réguliéres
$ExtensionsAutorises= array('php','php3','html','htm');
$DossiersInterdits = array('dossier1','dossier2','dossier3','etc...');
$FichiersInterdits = array('fichier1.php','fichier2.php','fichier3.php','etc..');
$myfiles=GetDirContents('.');
/**
function Dossier_Autorisé
param : $DossierCourant
return : vrai si dossier autorisé faux sinon
*/
function Dossier_Autorisé($DossierCourant){
global $DossiersInterdits;
return Est_Autorisé($DossierCourant, $DossiersInterdits);
}
/**
function Dossier_Autorisé
param : $DossierCourant
return : vrai si dossier autorisé faux sinon
*/
function Fichier_Autorisé($FichierCourant){
global $FichiersInterdits;
return Est_Autorisé($FichierCourant, $FichiersInterdits);
}
/**
function Extension_Autorisé
*/
function Extension_Autorisé($ExtensionCourante){
global $ExtensionsAutorises;
return !Est_Autorisé($ExtensionCourante,$ExtensionsAutorises);
}
/**
permet de réaliser les deux fonctions précédentes
*/
function Est_Autorisé($DossierCourant,$Interdits){
global $Goption;
$drapeau = true;
while ($drapeau && list(,$Dossier)=each($Interdits) ){
if ( ComparaisonFichier($DossierCourant,$Dossier,$Goption))$drapeau = false;
}
reset($Interdits);
return $drapeau;
}
function ComparaisonFichier($DossierCourant,$Dossier,$option=0){
switch ($option){
case 0:
// faire une comparaison bit à bit
return ($DossierCourant == $Dossier);
break;
case 1:
// faire un filtre avec strpos
$pos = strpos($mystring, $findme);
if ($pos === false) {
return false;
} else {
return true;
}
break;
case 2:
// faire un filtre avec les expressions réguliéres
return ereg($Dossier,$DossierCourant);
break;
}
}
/**
fonction getextension : retourne l'extension d'un fichier
source : nexen.net
param : $fichier
return: extension du fichier
*/
function getextension($fichier){
$bouts = explode('.', $fichier);
return array_pop($bouts);
}
/**
fonction GetDirContents
param : $dir dossier racine (le test est récursif)
return : liste des urlsDossier_Autorisé
*/
function GetDirContents($dir){
global $racine;
$i=0;
ini_set('max_execution_time',10);
if (!is_dir($dir)){die ('PROBLEME: '.$dir.'!');}
if ($root=@opendir($dir)){
while ($file=readdir($root)){
if($file=='.' || $file=='..'){continue;}
if(is_dir($dir.'/'.$file) && Dossier_Autorisé($file)){
if(!IsSet($files)){$files = NULL;}
$files=array_merge($files,GetDirContents($dir.'/'.$file));
}else{
$extension=getextension($file);
if (Extension_Autorisé($extension) && Fichier_Autorisé($file)){
echo '<strong>',$dir,'</strong>/',htmlentities($file),'<br />',"\r\n";
$files[$i]['lien']=utf8_encode($racine.substr($dir,1).'/'.$file);
// rajout de la date
// source : http://www.orvinfait.fr/scripts_web_performant.html
$modi_fich=filemtime($dir.'/'.$file);
$files[$i]['date']=date('Y-m-d', $modi_fich);
$i++;
}
}
}
}
if(!IsSet($files)){$files = NULL;}
return $files;
}
$nbliens=count($myfiles);
echo '<span class="italic">'.$nbliens.' liens référencés dans les fichiers.</span><br />',"\r\n";
if ($nbliens>LIMITLIENPARFICHIER){
// utilisation de la norme pour les sites souhaitant référencés plus de 1000 liens
// un fichier sitemap à générer en plus
$numfichier=1;
echo '<h2>Génération des fichiers sitemapXX.xml...</h2>',"\r\n";
}else {
$numfichier='';
echo '<h2>Génération du fichier sitemap.xml...</h2>',"\r\n";
}
if ($compressionGZ)
{
//http://docs.php.net/en/ref.zlib.html
$open='gzopen';
$write='gzwrite';
$close='gzclose';
$GZ='.gz';
} else
{
$open='fopen';
$write='fwrite';
$close='fclose';
$GZ='';
}
$CurLiens=0;
while ($CurLiens<$nbliens && $CurLiens<LIMITLIENINDEXE )
{
if ($fp = $open('sitemap'.$numfichier.'.xml'.$GZ, 'w')){
$write($fp,'<?xml version="1.0" encoding="UTF-8"?>'."\r\n");
$write($fp,'<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">'."\r\n");
$Limite = $CurLiens + LIMITLIENPARFICHIER; // si lien courant vaut 20000 dés qu'on arrive à 21000 on arrete
while ($CurLiens< $Limite && $CurLiens<LIMITLIENINDEXE && list(,$file)=each($myfiles))
{
$write($fp,'<url> '."\r\n".' <loc>'.$file['lien'].'</loc> '."\r\n \r\n");
$write($fp,"\t\t".'<lastmod>'.$file['date'].'</lastmod>'."\n");
$write($fp,'<changefreq>monthly</changefreq>');
$write($fp,'<priority>0.5</priority></url>');
$CurLiens ++;
}
$write($fp, '</urlset>');
$close($fp);
echo '<a href="./sitemap'.$numfichier.'.xml'.$GZ.'" target="_blank">fichier sitemap'.$numfichier.'.xml'.$GZ.'</a><br />',"\r\n";
}else{
echo 'sitemap'.$numfichier.'.xml',"\r\n"
,'<br /><br /><textarea rows="30" cols="100">',"\r\n"
,'<?xml version="1.0" encoding="UTF-8"?>',"\r\n"
,'<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">',"\r\n";
$Limite = $CurLiens + LIMITLIENPARFICHIER;
while ($CurLiens< $Limite && $CurLiens<LIMITLIENINDEXE && list(,$file)=each($myfiles))
{
echo '<url> '."\r\n".' <loc>'.$file['lien'].'</loc> '."\r\n ";
echo '<lastmod>'.$file['date'].'</lastmod>'."\r\n";
echo '<changefreq>monthly</changefreq>'."\r\n";
echo '<priority>0.5</priority></url>'."\r\n";
$CurLiens ++;
}
echo '</urlset></textarea><br />';
}
$numfichier++;
}
if ($numfichier!=1)
{
echo '<h2>Génération du fichier sitemap index file.xml...</h2>';
// génération du sitemap index file
if ($fp = fopen('sitemap.xml', 'w+')){
fwrite($fp, '<?xml version="1.0" encoding="UTF-8"?>'."\r\n");
fwrite($fp, '<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">'."\r\n");
$date=date('Y-m-d');
for($k=1;$k<$numfichier;$k++)
{
fwrite($fp, '<sitemap>'."\r\n");
fwrite($fp,'<loc>'.$racine.'/sitemap'.$k.'.xml'.$GZ.'</loc>'."\r\n");
fwrite($fp, '<lastmod>'.$date.'</lastmod>'."\r\n");
fwrite($fp,'</sitemap>'."\r\n");
}
fwrite($fp, '</sitemapindex>'."\r\n");
fclose($fp);
echo '<a href="./sitemap.xml" target="_blank">fichier sitemap.xml</a><br />',"\r\n";
} else
{
echo '<br /><br /><textarea rows="30" cols="100">',"\r\n"
,'<?xml version="1.0" encoding="UTF-8"?>',"\r\n"
,'<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">',"\r\n";
$date=date("Y-m-d");
for($k=1;$k<$numfichier;$k++)
{
echo '<sitemap>',"\r\n"
,'<loc>',$racine,'/sitemap',$k,'.xml</loc>',"\r\n"
,'<lastmod>',$date,'</lastmod>',"\r\n"
,'</sitemap>',"\r\n";
}
echo '</sitemapindex>',"\r\n";
}
}
?>
<span class="italic">génération du sitemap terminé</span>
<p class="center"><a href="#haut" title="Retourner en Haut de la page">Haut de la page</a></p>
</body>
</html>Note: Le fichier XML ne peut être actualisé qu'en vous rendant systématiquement sur votre fichier sitemap.php. Donc si vous ajoutez un nouveau dossier ou fichier, pensez à éditer les 3 variables du haut puis rendez vous de nouveau sur le fichier sitemap.php pour actualiser le fichier sitemap.xml.
Hors ligne

Propulsé par PunBB
© Copyright 2007
Forum créer un site