cs_wepai
Messages postés2Date d'inscriptiondimanche 4 mai 2008StatutMembreDernière intervention22 mai 2009
-
14 mai 2009 à 17:04
cs_wepai
Messages postés2Date d'inscriptiondimanche 4 mai 2008StatutMembreDernière intervention22 mai 2009
-
22 mai 2009 à 10:37
bonjour a tous,
j'ai un soucis !!!!!(sans blague!!)
resumé des épisodes precedent:je fais un site sur lequel on peut telechargé des partitions au format GP4 (guitar pro )et donc j'ai commencé a lister mon dossier contenant les partitions qui se trouve a la racine du site cela me donne une liste alphabetique des dossier sous forme de lien. la question premiere est la suivante: comment lister ensuite le sous dossier correspondant a chaque lien ????? la deuxieme question est :puis faire avec mysql une requete qui ferait une telle opération sans avoir a faire les entrées 1 a une (il y a 26 000 partitions)????
voici mon code pour le premier niveau
<?php
$nb_fichier = 0;
echo '';
?>
<?php
if($dossier = opendir('./tabs'))
{
?>
<?phpwhile(false !($fichier readdir($dossier)))
{
?>
<?php
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{
?>
<?php
$nb_fichier++; //On incrémente le compteur de un
echo '<li>[musique.php ' . $fichier . ']</li>';
} //On ferme le if (qui permet de ne pas afficher index.php, etc.)
} //On termine la boucle
?>
<?php
echo '
';
echo 'Il y a ' . $nb_fichier .' fichier(s) dans le dossier';
closedir($dossier);
}
else
echo 'Le dossier n\' a pas pu être ouvert';
?>
merci d'avance pour votre aide
wil
nautilus99
Messages postés661Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention18 septembre 20091 14 mai 2009 à 23:13
Pour les sous dossiers, le filetype peut te donner des idées pour construitre une fonction récursive. Mais pourquoi réinventer la roue quand dans toute version actuelle de PHP, une des classes SPL fait ça très bien... Voir la documentation de RecursiveDirectoryIterator dans le manuel de PHP.
Il serait temps que tous passent enfin à PHP 5, le support de la V 4 étant bientôt fini, et PHP 6 pointant le bout du nez.
Pour ta deuxième question, c'est aussi simple.. tu utilises un RecursiveDirectoryIterator et ensuite un simple:
// On va supposer une table fichiers avec les champs nom et chemin complet...
$path = realpath('./fichiers_a_lister') ;
$files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $path ), RecursiveIteratorIterator::SELF_FIRST ) ;
foreach( $files as $name => $object) {
// On ne veut que les fichiers et pas les répertoires
if ( $object->isFile() ) {
// on ne veut stocker que le chemin et le nom des fichiers
$q = "INSERT INTO fichiers ( nom, chemin ) VALUES ( '$name', '" .
$object->getPathName() . "'" ) ;
// là le handle de la base...
$db->exec( $q ) ;
}
}
par exemple.. Ce n'est qu'une ossature, sans le stry... catch... ni le test de doublons, mais ça peut aider.
cs_wepai
Messages postés2Date d'inscriptiondimanche 4 mai 2008StatutMembreDernière intervention22 mai 2009 22 mai 2009 à 10:37
bonjour
merci pour cette reponse mais j'y ai mis toute la bonne volonté du monde et je n'y arrive toujours pas auriez vous un peu plus de détails sur la marche a suivre