[bout de code]Indexion des fichiers.

RwanRwan Member
août 2010 modifié dans Modifications
Salut,
Voila une astuce qui permet d'indexer tout les fichiers d'un répertoire et de ses sous répertoires .
<?php
$path = realpath('./mondossier');

$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object){

    if (!eregi("inc_de_mon_site|index|.php|.ico|.htaccess|.txt|.html|.gif|divers_dossiers",$name)) {//filtre les fichiers interdits 
		if ($object->isFile()) {//les fichiers seulement
			$ext =  pathinfo($object->getFilename()); //extension du fichier
			$remplace=explode('/home/chemin_absolue_ de_mon_site',$name);//linux. le masque pour avoir url du fichier 
			
			//$remplace=explode('C:\Users\Erwan\Desktop\xampplite\htdocs',$name);\\windows
			//$remplace=str_replace('\\','/',$remplace[1]);\\windows
			
			echo "" . $object->getFilename() . "";//affiche le nom du fichier
			
			echo "http://" . $_SERVER['HTTP_HOST']. "$remplace[1]"//affiche url du fichier

			echo "" . date("D, d M o G:i:s T",$object->getATime()) . "";//la date

			echo $ext['extension'];//l'extension
		}
    }

}//foreach
?>
Précision pour le filtre, là il interdit une de ces expressions dans la chaine de caractère du chemin du fichier .
if (!eregi("inc_de_mon_site|index|.php|.ico|.htaccess|.txt|.html|.gif|divers_dossiers",$name)) {
là, il autorise seulement les fichier *.png et *. jpg.
if (eregi(".png|.jpg",$name)) {
Le seul problème de ce script est le fait qu'il n'est pas possible de généré que x fichiers, il traitera tous .
(sauf si on passe part des tableaux) .

Avec vous prouver par exemple gérer un fichier rss et manipuler celui-ci à votre guise .
Connectez-vous ou Inscrivez-vous pour répondre.