Lister les fichiers- Probleme de boucle

Eléphant du PHP | 64 Messages

20 avr. 2005, 09:04

Bonjour,

J'ai un piti problème de boucle, voilà le code, j'explique en dessous:

[code]while($f = readdir($dir)){
if(is_file($rep.$f)) {
echo $f."<br /><br />";
echo "<a href='".$rep.$f."'>Cliquer ici pour afficher le fichier excel.</a><br />";
}
else
{echo "Fichier indisponible.";}
}[/code]

En fait j'ai UN seul fichier dans mon dossier, je boucle pour qu'il me le trouve et si il n'y a pas de fichier dans le dossier, j'affiche "Fichier indispo".
Lorsque j'ai mon fichier présent il m'affiche le message d'erreur en double et trouve le fichier mais si le fichier n'est pas là il m'affiche le message en double quand même.
Pouvez vous m'expliquez?
Moi tout ce que je veut c'est vérifier la présence du fichier et si il est là j'affiche le lien vers celui-ci sinon j'affiche le message d'indisponibilité.
Merci, j'ai besoin de vos lumières !

Greg

Petit nouveau ! | 9 Messages

20 avr. 2005, 09:29

ajoute sa avent ton if(is_file($rep.$f)) {
[php]
$l = array('.', '..');
if (!in_array( $f $l)){ // si le nom de fichier et diff de . ou ..
// affiche
// nota il faudra pas oublier de teste si c est pas un rep ici

}

[/php] a+

Eléphant du PHP | 64 Messages

20 avr. 2005, 09:36

Je teste, merci.

Eléphant du PHP | 64 Messages

20 avr. 2005, 09:38

Il ne manque pas un symbole entre $f $l dans in_array( $f $l) ?

Petit nouveau ! | 9 Messages

20 avr. 2005, 10:21

donc -> dsl ecrant tros petit :-) if (!in_array( $f, $l)){ // si le nom de fichier et diff de . ou ..

Invité
Invité n'ayant pas de compte PHPfrance

20 avr. 2005, 11:45

Je résume un peu pour y voir plus clair

j'ai une boucle while qui check tous les fichie du repertoire

il y en a trois: . .. et mon fichier xls (il n'y en aura jamais d'autre).

mon but est d'afficher ce fichier xls si il est présent.

En gros, si mon fichier est différent de .. et . , j'affiche le lien vers ce fichier sinon, j'affiche le message d'indispo.

Mais il me manque un truc car ça marche pas

Eléphanteau du PHP | 25 Messages

20 avr. 2005, 11:50

pour precisions ...

il y a 1 seul fichier a tester ?

pour precision connais tu le non de ce fichier il est constant ou est t'il généré dynamiquement ?
:)

Invité
Invité n'ayant pas de compte PHPfrance

20 avr. 2005, 14:00

En fait le fichier est unique mais pour plus de souplesse, je fais l'hypothèse que le nom peut changer.

Petit nouveau ! | 9 Messages

20 avr. 2005, 14:42

[php]
<?php

$dir = @opendir("./");
while($file = @readdir($dir)) // lit chaque fichier du dossier

{

$l = array('.', '..');
if (!in_array( $file, $l)){ // si le nom de fichier et diff de . ou ..
print $file ;
print '<br>';
// ne pas oublier encode les fichiés les espace pour environment linux
}

}
?>

nota ca mache il faut juste comprendre inpeut ce qui ce pass
si le serveur de free et pas tros charger tu peut voir sa la
http://high.free.fr/bizar/testedir.php
[/php] il a des jour j ai l impresion etre null a+