Script php listant fichier d'un répertoire [Résolu/Fermé]

Signaler
-
 aerth -
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

15 réponses

Messages postés
1179
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
6 avril 2009
177
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 85965 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
samedi 26 avril 2008
Statut
Membre
Dernière intervention
4 juillet 2008
14
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.
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
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>";

}
Salut

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

@+

Geo
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 !
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/
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é ^^'
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
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 :(
Messages postés
4
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
7 avril 2009

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!!!!!
tu devrais utiliser du javascript avec du CSS pour réaliser ton menu.
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
Messages postés
1179
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
6 avril 2009
177
salut
en php, tu as la fonction exec( ) qui te permet d'executer des commandes DOS par exemple...

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

mais peut tu précisé sil te plait merci
jisisv
Messages postés
3661
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
862
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.
Messages postés
1179
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
6 avril 2009
177
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)