Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/07/2007, 12h54   #1
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 98
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 98
Points : 38
Points : 38
Par défaut Problème avec is_dir et is_file

Bonjour,
J'ai un problème avec is_dir() et is_file(). Il indique des répertoires (et aussi des fichiers) comme n'étant ni des fichiers, ni des dossiers. Mon script est très simples, mais j'ai tout de même fait un test en supprimant tout le superflu, et le problème persiste. Problème sur Windows et Linux, PHP 4 et 5.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
$handle = opendir('fichiers'); // On ouvre le dossier
 
while($repertoire = readdir($handle)) // On lit le dossier
{
	if(is_dir($repertoire))
	{
	$type = "(D)";
	}
	else if(is_file($repertoire))
	{
	$type = "(F)";
	}
	else
	{
	$type = "(A)";
	}
 
	echo "$repertoire $type<br />\n"; // On affiche la liste des noms des dossiers
}
closedir($handle); // On ferme le dossier
 
?>
Voici le lien de test : [lien supprimé]

Le problème ne se pose pas pour le dossier courant opendir('./');
Vous allez me dire que c'est un problème avec la syntaxe du dossier, mais le problème persiste que je mette ./fichiers, ./fichiers/, fichiers/ ou fichiers. Les dossiers n'ont aucun espace, aucun caractère spécial ou autre.
eric41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2007, 14h07   #2
Membre du Club
 
Inscription : juin 2006
Messages : 67
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2006
Messages : 67
Points : 53
Points : 53
Bonjour !
Alors pr le resultat de ton script , il reconnais les dir .
sinon pour les fichiers essaye de les mettre ds un tableau c mieux comme ca si tu veux les afficher par ordre alphabetique ou autre tu peux bien les manipuler grace aux fonctions PHP !
sinon pour ton code essaye ca :
Code :
1
2
3
4
5
6
7
While($repertoire = readdir($handle)!=false) {
               if($repertoire != ".." && $repertoire != ".")
       {
         $filelist[] = $repertoire ;
       }
}
/* et apres tu affiche ta liste de fichiers contenu ds le dossier ... */
Car ton test if(is_file($repertoire)) n'est pas bon ,
bref essaye ca : if(is_file($dossier.$repertoire))
avec $dossier='fichiers' si c bien ca
a+
luminien est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/07/2007, 14h44   #3
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 98
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 98
Points : 38
Points : 38
Citation:
Envoyé par luminien
Bonjour !
Alors pr le resultat de ton script , il reconnais les dir .
Où tu as vu qu'il reconnaissait les répertoires ? On ne doit pas avoir le même script. Moi, je vois çà.

Citation:
fgdfgfgfdf (A)------> dossier non reconnu !
bvcnbjnfjhy (A)------> dossier non reconnu !
robots.txt (A)
style.css (A)
test (A)------> dossier non reconnu !
Il ne reconnaît que "." et ".." comme des dossiers.
eric41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2007, 14h44   #4
Membre du Club
 
Inscription : juin 2006
Messages : 67
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2006
Messages : 67
Points : 53
Points : 53
Re :
Voila je viens de tester et ca marche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
 
$dir="Fichiers/" ;
$handle = opendir($dir); // On ouvre le dossier
 
while($repertoire = readdir($handle)) // On lit le dossier
{
	if(is_dir($dir.$repertoire))
	{
	$type = "(D)";
	}
	else if(is_file($dir.$repertoire))
	{
	$type = "(F)";
	}
	else
	{
	$type = "(A)";
	}
 
	echo "$repertoire $type<br />\n"; // On affiche la liste des noms des dossiers
}
closedir($handle); // On ferme le dossier
 
?>

PS: n'oubli pas RESOLU
luminien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2008, 14h08   #5
Nouveau Membre du Club
 
Avatar de Squalthor
 
Homme
Autodidacte
Inscription : juillet 2006
Messages : 140
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Autodidacte

Informations forums :
Inscription : juillet 2006
Messages : 140
Points : 37
Points : 37
Merci Luminien, tu m'as aidé en apportant la réponse à mon problème.
Squalthor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2008, 00h48   #6
Membre du Club
 
Inscription : juin 2006
Messages : 67
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2006
Messages : 67
Points : 53
Points : 53
De rien !
en voila un vrai habitué
luminien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h06.


 
 
 
 
Partenaires

Hébergement Web