Explorer un repertoire en qques lignes [tutoriel]

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 922 fois - Téléchargée 27 fois

Contenu du snippet

voici un code court, commenté, sans blabla ou code superflux.
le but n'est pas de realiser une application complete, mais de comprendre comment explorer les repertoires simplement.

Source / Exemple :


<?php
// on definie la fonction listfile() avec en argument le dossier a explorer
function listfile($from) {
$dossier=opendir($from);  // on ouvre le dossier
while ($fichier = readdir($dossier)) {  // boucle qui s'execute tant qu'on est pas a la fin de la liste de fichier
$l = array('.', '..','index.php'); // pour pas que la page en cours ou les dossier .. ou . apparaissent, on les met dans un array...
	if (!in_array( $fichier, $l)){ // ... et on compare.
		$_file_ = $from."/".$fichier; // variable $_file_ = chemin du fichier trouvé, relatif a la page en cours.
		if (is_dir($_file_)){  // si ce "fichier" est un dossier
		print("dir :: <a href=$PHP_SELF?d=$_file_>$_file_</a><br>"); // on crée un lien permettant de l'explorer (passage en variable, voir plus bas)
		} else {
		print("file :: <a href=$_file_>$_file_</a><br>"); // sinon on fait un lien vers ce fichier.
		}
	}
}
}
if (isset($d)) { // si la variable $d existe, on explore le dossier $d
listfile($d);
} else {
listfile("."); // sinon on explore le dossier courrant.
}
?>

Conclusion :


pour ceux qui ne savent pas ::
. = dossier en cours
.. = dossier parent
-----------------------------
si vous mettez ça dans une page qui n'est pas index.php, alors changez la ligne $l = array('.', '..','index.php');
si vous voulez cacher des fichier, ajouter comme ceci ::
$l = array('.', '..','index.php','fichiercaché.ext','.httaccess','admin');
les noms de fichier ou de dossier sont confondus.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
68
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
31 janvier 2009

Pas mal
j'aime bien
Messages postés
127
Date d'inscription
lundi 15 août 2005
Statut
Membre
Dernière intervention
9 octobre 2007

je recommence en mieux :

quand je passe la souris sur un lien du repertoire que je visualise l'url utilise le debut du chemin de mon site (exemple: http://www.taratatat.com/+le nom du fichier)

j'aimerais remplacer le nom du site par l'ip du membre pour qu'il puisse explorer les fichier sur son serveur ftp qu'il hebergerais lui-meme sur son pc.
jusque là pas de probleme je recupere son ip et je modifie la ligne :
$_file_ $_file_."/".$fichier; // variable $_file_ chemin du fichier trouvé, relatif a la page en cours.

par :

$_file_ $ip."/".$fichier; // variable $_file_ chemin du fichier trouvé, relatif a la page en cours.

mais le probleme c'est qu'il me rajoute toujours l'url de la page ou je me trouve ce qui me donne par exemple :

http://www.taratatat.com/82.154.21.26/image.jpg

alors que je voudrais qu'il mette :

http://82.154.21.26/image.jpg

est-ce possible ?
merci
Messages postés
127
Date d'inscription
lundi 15 août 2005
Statut
Membre
Dernière intervention
9 octobre 2007

bonjour,

tu met ça :
$_file_ $ip."/".$fichier; // variable $_file_ chemin du fichier trouvé, relatif a la page en cours.

comment faire pour qu'il ne soit pas relatif à la page en cours mais à l'url que je deciderais de mettre ?

je ne sais pas si ma question est comprehensible ?
Messages postés
91
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
5 août 2010

k merci...
Messages postés
1277
Date d'inscription
mercredi 21 mars 2001
Statut
Modérateur
Dernière intervention
21 juin 2009
2
c une variable global qui est créé par apache... je sais plus le nom exacte...
Il y en a pas mal de ce type, mais je te conseil d'aller à la fnac, ou sur amazon et d'achter une reference php (style O'reilly). Dancs ce genre de bouquin tu pourra trouver la description des principals fonctions, et des variables globals...
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.