Script php listant fichier d'un répertoire

Résolu/Fermé
Tux1 - 3 nov. 2005 à 12:17
 aerth - 14 févr. 2010 à 19:49
Voila bonjour je cherche un script qui liste les fichiers d'un répertoire MAIS AVEC LE : http://monsite.com/dossier_en_question/

exemple: http://monsite.com/dossier_en_question/patatipatata.exe

merci et j'espere que quelqu'un ma compris
A voir également:

15 réponses

bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
3 nov. 2005 à 14:14
sinon on peut aussi utiliser ca:
function AffDir($rep)
{
  $dir = opendir($rep);
  while ($File = readdir($dir))
  {
    if($File != "." && $File != "..")
    {
      echo $File."<br>";
    }
  }
  closedir($dir);
}

AffDir(".");
15
Villa Flore Messages postés 3 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 4 juillet 2008 14
Modifié par Jeff le 23/03/2010 à 11:45
Récupérer la liste des répertoires dans un tableau à partir d'une fonction récursive.

Les fonctions récursives, c'est bien joli, mais quand on veut récupérer des valeurs (il faut alors passer par un RETURN), ce n'est plus évident.
A partir du script de http://www.ac-creteil.fr/util/progra...epertoires.php
voici une adaptation qui permet de récupérer la liste des répertoires et sous-répertoires sous forme de tableau.
Le grand avantage est de pouvoir utiliser ce tableau dans des listes déroulantes ...
(une astuce INDISPENSABLE est d'utiliser des variables GLOBALES pour $liste_rep et pour $i )

<?php 
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 
// lecture des REPERTOIRES en PROFONDEUR (à partir de "$rep") et COMPTAGE du nombre de fichiers (avec fonction récursive) 
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 
// http://www.ac-creteil.fr/util/progra...epertoires.php 
/* script rep1.php 
* affichage récursif du contenu d'un répertoire, avec parcours en "profondeur d'abord" 
* pour cela dès que l'on a atteint et reconnu un sous-répertoire, on le parcours 
* prioritairement en appelant récursivement la fonction de parcours pour ce répertoire. 
*/ 

function parcours_rep($rep, $ssrep, $racine, $i) // fonction récursive ("racine" est là pour retrancher cette racine au chemin complet afin de remplir le tableau) 
{ 
if (is_dir($rep)) // Ouvre le dossier "racine" ("/photos_web/galeries/" par exemple) et lit tous les répertoires 
{ 
if( $dir = opendir($rep) ) // Ouvre le dossier "racine" et lit tous les répertoires 
{ 
while( ($fichier = readdir($dir)) !== false ) 
{ 
if ($fichier != "." && $fichier != ".." ) 
{ 
$chemin = $rep.$fichier; 
if (is_dir($chemin)) // Est-ce que $chemin est un répertoire ? 
{ 
global $liste_rep; 
global $i; 
$liste_rep[$i] = substr($chemin, strlen($racine)); // PLace les fichiers dans un tableau ($liste_rep[] = à la fin) 
echo 'i = '.$i.' - '; 
echo 'liste_rep = '.$liste_rep[$i].'<br/>'; 
// echo 'chemin = '.$chemin."<br>"; 
$i++; 
parcours_rep($chemin.'/', ($ssrep==''?$fichier:$ssrep.'/'.$fichier) , $racine , $i); // fonction récursive 
} 
/* else // si on veut afficher les fichiers du répertoire (ou sous répertoire) 
{ 
$liste_galeries[$i] = substr($chemin, strlen($racine)); // PLace les fichiers dans un tableau 
echo 'galerie '.$i. ' = ' . $liste_galeries[$i].'<br/>'; 
} 
*/ } 
} 
} 
} // -------------------------------------- fin de la lecture des répertoires ------------------------------------------------------------------- 
else 
{ 
echo "le répertoire \"$rep\" n'existe pas ..."; 
} 
closeDir($dir); 
return $liste_rep; 
} // ---------------------------------------------------------------- fin de la fonction ------------------------------------------------------------------- 

$liste_repertoires = array(); 
$liste_galeries = array(); 
$i=0; // $i = tous les répertoires 
$nb_rep=0; 
echo "Affichage d'un rép. avec parcours en PROFONDEUR d'abord <br/>"; 
//$repertoire= '../../photos_web/galeries/'; // "$repertoire" défini dans le programme d'appel 
$liste_repertoires = parcours_rep($racine, '', $racine, $i=0); 
$nb_galeries = (count($liste_galeries)); 
$nb_rep = (count($liste_repertoires)); 
echo 'nb_rep = '.$nb_rep.'<br/>'; 
// Classement des répertoires ( "sort" = tri croissant "rsort" = tri décroissant) 
sort($liste_galeries); // ou rsort($liste_galeries); 
sort($liste_repertoires); // ou rsort($liste_repertoires); 
for ($i=0; $i<$nb_rep; $i++) 
{ 
if ($liste_repertoires[$i] != '') 
{ 
echo 'liste_rep '.$i.' = '.$liste_repertoires[$i].'<br/>'; 
} 
} 

// ============================================================================================================================ 
?> 


Merci à tous les développeurs.
6
t super merci

mais je suis pas très doué et j'ai windows xp

alors si tu peux m'aider ca serai vraiment gentil

et encore merci
0
jai fais ca merci :

___________________________________________________________
<?

$dossier_en_cours = "http://monsite.com/dossier_en_question/";

if ($handle = opendir(".")) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") { // Evites les dossiers


echo $dossier_en_cours.$file."<br>";

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut

jette un oeil ici : http://www.jbc-explorer.com

@+

Geo
0
Bonjour à tous !
Tux1 a écrit ceci :

<?

$dossier_en_cours = "http://monsite.com/dossier_en_question/";

if ($handle = opendir(".")) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") { // Evites les dossiers


echo $dossier_en_cours.$file."<br>";

}

Je voudrais savoir si, au lieu d'afficher le nom du dossier et du fichier ce serait possible de générer un lien direct vers chaque fichier qui est dans le dossier. Je ne sais pas comment faire !
Merci d'avance pour votre aide et bonne journée !
0
Avec le lien vers le fichier :

$dossier_en_cours = "http://monsite.com/dossier_en_question/";

if ($handle = opendir(".")) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") { // Evites les dossiers
echo "<a href='".$file."'>".$dossier_en_cours.$file."</a><br>";
}
}
}

Dryzd
https://citewarhammer.com/
0
oui mais le lien en question ne marque que si les noms de fichiers ne comportent pas de caractères spéciaux, à savoir les espaces (à remplacer par %20 ) des ' ou " (à remplacer par \' et \" ) etc etc, il faudrait adapter le script pour qu'il modifie les noms à caractères spéciaux et les remplace automatiquement ^^
moi je suis pas encore assez expérimenté pour le faire désolé ^^'
-1
Bonjour,

j'aurai besoin dans un repoire contenant plusieur fichier de trouver le fichier comportant un nom, je m'explique

j'ai des image nomé apr exemple 23698-569-548963325.jpg un autre 23698-569-6942368.jpg etc.....

j'aimerai pouvoir utiliser un fichier en ne recherchant qu'a partir d'un N° contenu dans le nom du ficher ex : 6942368 me selectionerai le fichier 23698-569-6942368.jpg que je pourai ensuite travaillé et changer de place sur mon serveur.

mon probleme est la recherche du fichier avec un frangmment de son nom.

quelqu'un peut m'aider ?

d'avance merci
-1
tres bien cette fonction, mais comment je fait pour en deduire un nom de fichier plus long

ex si je recherche dans un nom de fichier 8749_4 j'aimerai que le script me retourne automatiquement le fichier gjzisn_66383068_8749_4.jpg

la je ne voi toujours pas comment faire :(
-1
rimrom Messages postés 4 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 7 avril 2009
7 avril 2009 à 12:10
bonjour !! aidez moi à avoir le code pour filtrage à partir d'1 liste menu en php

exemple : en selectionnant une direction la liste de ses sous directions apparait et en selectionnant une sous direction la liste de ses services apparait !!




MERCI D'AVANCE!!!!!
-1
tu devrais utiliser du javascript avec du CSS pour réaliser ton menu.
0
Villa Flore>petit erreur dans ton code
tu a marqué :
"
...
if ($fichier != "." && $fichier != ".." )
{
$chemin = $rep.$fichier;
if (is_dir($chemin)) // Est-ce que $chemin est un répertoire ?
{
...
"
alors que la syntaxe propre serait plutôt :
"$chemin = $rep.'\\'.$fichier;"
=>avec l'antislash pour associer les 2 variables et véritablement faire un lien absolut...
Sans ça la condition :
"if (is_dir($chemin)) // Est-ce que $chemin est un répertoire ?
{ " -> ne serait jamais vérifier et aucun répertoire ne serait trouver dans l'arborescence !

Cependant très beau code qui m'a bien arrangé
merci à toi Villa Flore
-1
bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
3 nov. 2005 à 12:30
salut
en php, tu as la fonction exec( ) qui te permet d'executer des commandes DOS par exemple...

ou alors passthru( ) ou system( )
-2
merci de ta réponse

mais peut tu précisé sil te plait merci
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
4 nov. 2005 à 12:37
Vraiment pas une bonne idée d'utiliser exec , system et Cie.
Ce sont des fonctions à bannir et que tout administrateur PHP devrait interdire.
(pas sécure, non portable). Sauf si l'on doit faire appel à un programme externe propriétaire, sans API PHP évidemment.
On utilise les (nombreuses) fontion PHP permettant de manipuler fichiers et répertoires etc...
ou alors on a la flemme de chercher dans la documentation.
0
bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
3 nov. 2005 à 12:46
dans ton script, tu peux utiliser ces fonctions.

http://www.nexen.net/docs/php/annotee/function.system.php

ensuite selon ton OS, tu utilises la commande adéquate (ls ou dir)
-3