Listing d'un repertoire sous une forme precise

Signaler
Messages postés
9
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
22 mai 2009
-
Messages postés
9
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
22 mai 2009
-
Bonjour a vous, je suis debutant et je recherche un moyen de lister le contenu d'un repertoire et que a la sortie celui-ci soit sous la forme

http://fichier.mp3 | http://fichier2.mp3 | http://fichier3.mp3 | ...

j'ai bien trouver un scripts ici permentant de lister le contenu d'un repertoire (ici meme)

mais je n'arrive pas a ce que le resultats me soit donner sous la forme cité ci-dessus

si quelqu'un avais une idée je lui en serais fortement reconnaissant

merci d'avance Matthieu

5 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
salut

<li>echo '['.($repertoire).'/'.rawurlencode(str_replace ('/', '', $value)).'">'.$value.']
';
</li><li> }
</li>
suffit de le remplacer par

<li>echo 'http://..../'.$value.' | ';
</li><li> }
</li>
Messages postés
9
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
22 mai 2009

merci coucou747, me manque plus qua trouver comment remplacer les .... par le chemin ou se trouve le dossier pour ne pas avoir a modifier le fichier PHP a chaque nouveau dossier
Messages postés
9
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
22 mai 2009

voila mon code dans son etat actuel

<?php

function listing($repertoire){

$fichier = array();

if (is_dir($repertoire)){

$dir = opendir($repertoire); //ouvre le repertoire courant désigné par la variable
while(false!==($file = readdir($dir))){ //on lit tout et on récupere tout les fichiers dans $file

if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..'

$page = $file; //sort l'extension du fichier
$page = explode('.', $page);
$nb = count($page);
$nom_fichier = $page[0];
for ($i = 1; $i < $nb-1; $i++){
$nom_fichier .= '.'.$page[$i];
}
if(isset($page[1])){
$ext_fichier = $page[$nb-1];
if(!is_file($file)) { $file = '/'.$file; }
}
else {
if(!is_file($file)) { $file = '/'.$file; } //on rajoute un "/" devant les dossier pour qu'ils soient triés au début
$ext_fichier = '';
}

if($ext_fichier != 'php' and $ext_fichier != 'html' and $ext_fichier != 'jpg' and $ext_fichier != 'zip') { //utile pour exclure certains types de fichiers à ne pas lister
array_push($fichier, $file);
}
}
}
}

natcasesort($fichier); //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse

foreach($fichier as $value) {
echo 'http://www.leblogdulibre.fr/public/..../'.$value.' | ';
}

}

//exemple d'utilisation :

listing('.'); //chemin du dossier

?>

et voila le résultat qui en ressort

http://www.leblogdulibre.fr/public/..../01 - Making Me Nervous.mp3 |
http://www.leblogdulibre.fr/public/..../02 - Look and Feel Years
Younger.mp3 | http://www.leblogdulibre.fr/public/..../03 - Fixing My
Brain.mp3 | http://www.leblogdulibre.fr/public/..../04 - Bad
Attraction.mp3 | http://www.leblogdulibre.fr/public/..../05 - Sick as a
Dog.mp3 | http://www.leblogdulibre.fr/public/..../06 - Borderline.mp3 |
http://www.leblogdulibre.fr/public/..../07 - I Think I Started a
Trend.mp3 | http://www.leblogdulibre.fr/public/..../08 - Never Get
Out.mp3 | http://www.leblogdulibre.fr/public/..../09 - Overreacting.mp3
| http://www.leblogdulibre.fr/public/..../10 - Dirtbag.mp3 |
http://www.leblogdulibre.fr/public/..../11 - Time to Take out the
Trash.mp3 | http://www.leblogdulibre.fr/public/..../12 - Work out
Fine.mp3 |

il me reste donc 3 point a voir

<ol><li>enlever les etrange caractere en tout debut de premiere ligne</li><li>arriver a ce qu'il remplace les .... par le chemin ou se trouve les mp3 (Totalement libre de droits au passage)</li><li>lui dire de ne pas mettre de | apres la derniere musique du repertoire</li></ol>Voila si une ame charitable passai par la et pouvais me donner des pistes, car perso j'ai decouvert le PHP y'a moins de 2 jours

merci par avance Matthieu
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
je me cite

<li>echo '['.rawurlencode($repertoire).'/'.rawurlencode(str_replace ('/', '', $value)).' '.$value.']
';
</li><li> }
</li>suffit de le remplacer par

<li>echo 'http://..../'.$value.' | ';
</li><li> }
</li>t'as [as l'impression qu'il y a une variable qui s'appelle $repertoire au debut.... tu ne peux pas l'utiliser ?
<li>foreach($fichier as $n=>$value) {
</li><li>if ($n!=0) echo ' | ';
</li><li>echo $repertoire).'/'.$value;
</li><li> }
</li>
Messages postés
9
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
22 mai 2009

bon j'y suis presque arriver

voila mon résultat actuel

/public/Rock/Brad_Sucks/list2.php01 - Making Me Nervous.mp3 |
/public/Rock/Brad_Sucks/list2.php02 - Look and Feel Years Younger.mp3 |
/public/Rock/Brad_Sucks/list2.php03 - Fixing My Brain.mp3 |

j'y suis presque me reste te juste a trouver comment retirer  lelist2.php qui apparait pour chaque fichier lister

Voila l'eta de mon code actuellement

<?php

function listing($repertoire){

$fichier = array();

if (is_dir($repertoire)){

$dir = opendir($repertoire); //ouvre le repertoire courant désigné par la variable
while(false!==($file = readdir($dir))){ //on lit tout et on récupere tout les fichiers dans $file

if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..'

$page = $file; //sort l'extension du fichier
$page = explode('.', $page);
$nb = count($page);
$nom_fichier = $page[0];
for ($i = 1; $i < $nb-1; $i++){
$nom_fichier .= '.'.$page[$i];
}
if(isset($page[1])){
$ext_fichier = $page[$nb-1];
if(!is_file($file)) { $file = '/'.$file; }
}
else {
if(!is_file($file)) { $file = '/'.$file; } //on rajoute un "/" devant les dossier pour qu'ils soient triés au début
$ext_fichier = '';
}

if($ext_fichier != 'php' and $ext_fichier != 'html' and $ext_fichier != 'jpg' and $ext_fichier != 'zip') { //utile pour exclure certains types de fichiers à ne pas lister
array_push($fichier, $file);
}
}
}
}

natcasesort($fichier); //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse

foreach($fichier as $value) {
echo $_SERVER[PHP_SELF].$value.' | ';
}

}

//exemple d'utilisation :

listing('.'); //chemin du dossier

?>

merci encore une fois pour votre aide