Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: pixyle le le 29-04-2006 a 17:05:59

Titre: fonction dir() : n'obtenir que les fichiers du répertoire et rien d'autre
Posté par: pixyle le le 29-04-2006 a 17:05:59

Bonjour,

Je dois avoir du mal à cerner les tenants et aboutissants de la fonction dir(), c'est pourquoi je m'adresse à vous.

Je souhaite parcourir un répertoire et en afficher les images.
J'utilise le code suivant :
<?php
$rep = "images/bank";
$d = dir($rep);
while($entry=$d->read()) {
echo "<img src=\"$rep/$entry\">";
}
$d->close();
?>

Celà m'affiche bien mes images, mais je constate 3 images brisées.

En testant la variable $entry seule, j'obtient des valeurs "parasites" : "." , ".." et "Thumbs.db"
Pour Thumbs.db, ok, c'est que je travail en local sous Windows, par contre, "." et ".." (qui d'habitude font référence à des répertoires) m'étonnent vraiment.

Pour palier à ce problème en attendant de comprendre, j'exclu ces valeurs avant de faire afficher mes images (je pourrai aussi tester qu'il s'agit bien d'une image avant d'afficher mais ce répertoire est dédié à des images ce serait donc dommage de surcharger pour rien).

MAIS j'aimerai bien comprendre ce que "." et ".." font là, histoire d'améliorer mon code et être certaine qu'aucun bug ne vienne se loger par la suite.

Merci par avance de votre aide

Cordialement

Titre: Re:fonction dir() : n'obtenir que les fichiers du répertoire et rien d'autre
Posté par: TonTon FluBB le le 29-04-2006 a 19:59:07

Cela doit être pour l'arborescence des dossiers il me semble.
Sur les gestionnaire FTP c'est la même chose (en tout cas sur le mien ;D).

Maintenant je me trompe peut-être lol

Sinon moi je ferais ceci :


Code:

<?php
$rep = "new-master/images";
$d = dir($rep);
while($entry=$d->read()) {
   if(is_file("$rep/".$entry)) {
      echo "<img src=\"$rep/$entry\">";
   }
}
$d->close();
?>



Titre: Re:fonction dir() : n'obtenir que les fichiers du répertoire et rien d'autre
Posté par: tavman le le 29-04-2006 a 21:33:38

Nan moi je sais que j'ai toujours du exculre les deux valeur "." et ".." (j'ai enlever les thumbs sur mon PC ca bouffe trop de place et ca sert a kedal).

la valeur "./un_fichier" revient a écrire "un_fichier", elle correspond en fait au fichier actuel et la valeur "..", tout le monde sais ce qu'elle veut dire.

Mais oui effectivement, ce sont des valeurs parasites qu'il faut gérer comme des exeptions...

Titre: Re:fonction dir() : n'obtenir que les fichiers du répertoire et rien d'autre
Posté par: pixyle le le 30-04-2006 a 12:43:02

:-[ pour les Thumbs tu as bien raison Tavman ... je devrai me faire un T0 D0 des optimisations et mises à jour à faire à chaque réinstall ... si ça fait plus de 2 pages A4 je passe sous Linux de suite ^^

Merci à tous les deux pour ces éclairages (et puis ça me rassure, comme je suis un peu rouillée je pensais avoir mal compris quelquechose)

Ca fesait un bail que j'étais pas passée ici et je constate que les réponses sont toujours aussi rapides et sympathiques :)

:-*

Titre: Re:fonction dir() : n'obtenir que les fichiers du répertoire et rien d'autre
Posté par: tavman le le 03-05-2006 a 01:46:31

De rien pixyle, toujours content de revoir les anciens de temps en temps ;D

Titre: Re:fonction dir() : n'obtenir que les fichiers du répertoire et rien d'autre
Posté par: petit_bab le le 05-05-2006 a 22:28:41

Citation de: TonTon FluBB le le 29-04-2006 a 19:59:07
Sinon moi je ferais ceci :


Code:

<?php
$rep = "new-master/images";
$d = dir($rep);
while($entry=$d->read()) {
if(is_file("$rep/".$entry)) {
echo "<img src=\"$rep/$entry\">";
}
}
$d->close();
?>





+1.

C'est beaucoup plus propre que faire des exceptions en tout cas. Après, tu peux même tester les extensions si tu veux afficher un type d'image particulier ;)


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.