open dir

Invité
Invité n'ayant pas de compte PHPfrance

17 sept. 2006, 18:32

Bonjour,

J'ai créé 2 dossiers images1 et images2, qui contiennent des images.
J'utilise php pour lire et lister les fichiers d'un dossier:
$dir = opendir('images1/'); 

while ($read_files = readdir($dir)) 
    { 
        if ($read_files) {
	       echo $read_files . "<br>";
        }       
    } 
closedir($dir);
Mon problème: le script marche avec le dossier images1, mais pour le dossier images2, je reçois une erreur
Warning: opendir(c:/program files/...): failed to open dir: Invalid argument in c:\...
Savez vous à quoi ça peut être dû?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

17 sept. 2006, 20:46

Bonjour,

Essaye de doubler les antislashes pour un serveur sous windows : "c:\\program files\\..."
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 01:00

j'ai essayé, ça ne change rien. Ma fonction marche avec le dossier chemin

$dir = opendir('images1/');

Par contre $dir = opendir('images2/'); ne marche pas.

Y'aurait-il un lien avec des permissions sur dossiers? comment puis-je tester ça ? (windows xp + easyphp 1.8)

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 01:04

un truc étrange:
mon dossier images1 est bien lu et affiché. Par contre si je fais une copie de images1 que je renomme images_copie, je n'arrive pas à le lire! pourtant il a le même contenu. ya un truc qui m'échappe...

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 10:26

personne n'a jamais eu ce genre de pb avec opendir?

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 12:02

pitié, une piste svp...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 sept. 2006, 12:05

essaye de vérifier si le répertoire existe avant de faire un opendir()
if (!is_dir('image2'))
{
    echo "eh eh, il existe pas celui là ;-)";
}
Sinon, juste pour voir, essaye sans mettre le / à la fin :-k
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 13:42

a priori le répertoire n'existe pas quand j'utiliser is_dir...comment est possible puisque je l'ai sous les yeux? ça me rend dingue ce truc.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 sept. 2006, 13:52

Comment crées-tu le répertoire ? via windows ou en php ?
Ton dossier est bien dans le répertoire ou s'exécute le script php ?
Est ce que tu fais bien des closedir() une fois que tu n'as plus besoin de la ressource ?
Tu peux essayer de redémarre easyphp (voire windows), ça pourrait peut être libérer des accès ou des verrous sur le dossier... :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 sept. 2006, 13:57

essaye également d'afficher le répertoire dans lequel tu te trouves au cas où tu ais mélanger 2 espaces physique ;)
echo $_SERVER['PHP_SELF'];
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 14:49

Réponse aux questions:
1- Le répertoire est créé via windows
2- Le chemin est bon, puisque la lecture du dossier images1 fonctionne
3 -Je fais bien

Complément d'info:
J'ai 4 autres dossiers qui contiennent divers fichiers sur mon serveur local.
a lecture de dossier ne fonctionne que pour images1/
Les autes dossiers (css/, divers/...) ne répondent pas non plus.

Si je fais un copier-coller du dossier images1/ qui fonctionne, sa copie de fonctionne pas!

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 14:54

pareil, tous les nouveaux dossiers que je crée ne marchent pas.
Poutant surle même serveur, j'ai le même script de lecture qui tourne pour un autre site sans problème.

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 14:59

il n'y a aucune fonction qui permette de contourner opendir ?

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 15:06

si je renomme mon seul dossier qui fonctionne, lui aussi ne répond plus...snif.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 sept. 2006, 15:25

Est-ce que tu as une gestion des droits sur ces dossier ?
un .htaccess par exemple :-k
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer