Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 11/04/2011, 11h23   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut lecture du contenu d'un répertoire

Bonjour,

Pourquoi ce code ne marche pas ?

Code php :
1
2
3
4
5
6
7
8
9
10
<?php 
$rep1='uploads';
echo "contenu de ".$rep1." :<br>";
$rep=opendir($rep1);
$i=0;
while ($file == readdir($rep))
if (($file!='.')&&($file!='..'))
echo 'fichier '.$i++ .': '.$file.'<br>';
closedir($rep);
?>
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 11/04/2011, 11h32   #2
Membre régulier
 
Homme
Chef de projet NTIC
Inscription : juin 2007
Messages : 69
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2007
Messages : 69
Points : 70
Points : 70
Salut,

Remplace
Code :
while ($file == readdir($rep))
par
Code :
while(($file = readdir($rep)) !== FALSE)
Comme indiqué dans la FAQ.
Cobalt59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 11h33   #3
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
sinon la fonction scandir parait plus approprié pour ton besoin..

http://www.php.net/manual/fr/function.scandir.php
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 13h21   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Sinon, en objet avec DirectoryIterator:

Code :
1
2
3
4
 
$it = new DirectoryIterator(dirname(__FILE__));
foreach ($it as $entry) 
  var_dump($entry);
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 13h59   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Benjamin Delespierre, il doit y avoir un truc qui ne va pas :
Citation:
Fatal error: Cannot instantiate non-existent class: directoryiterator in...
Mais c'est surtout pour la culture, vu que la solution de Cobalt59 va très bien (que je préfère à scandir car l'affichage ne me plait pas).
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 14h14   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Citation:
Benjamin Delespierre, il doit y avoir un truc qui ne va pas :
Citation:
Code :
Fatal error: Cannot instantiate non-existent class: directoryiterator in...
En effet, c'est DirectoryIterator le nom de la classe et pas directoryiterator.

Voici un exemple un peu plus complet:
Code :
1
2
3
4
5
6
7
 
$it = new DirectoryIterator(dirname(__FILE__));
foreach ($it as $fileinfo) {
  if (!$fileinfo->isDot()) {
    var_dump($fileinfo->getFilename());
  }
}
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 11/04/2011, 14h25   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
sinon avec PHP 5.3 FilesystemIterator fait automatiquement le skip dot , de plus qu'on a __DIR__

Code :
1
2
3
4
5
6
$it = new FilesystemIterator(__DIR__);
 
foreach($it as $fileinfo)
{
    var_dump($fileinfo->getFilename());
}
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 14h49   #8
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
En fait, c'est le serveur de 1&1 qui déc..., car bien que le fichier que j'y transfère contient bien des majuscules, il les retire :
Citation:
Fatal error: Cannot instantiate non-existent class: filesystemiterator in ...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 14h55   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par laurentSc Voir le message
En fait, c'est le serveur de 1&1 qui déc..., car bien que le fichier que j'y transfère contient bien des majuscules, il les retire :
upload bien les fichiers en mode binaire et pas ascii
mais normalement PHP ne tien pas en compte de la casse des classes, quelle est ta version de PHP ?

Code :
var_dump(phpversion());
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 15h18   #10
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
upload bien les fichiers en mode binaire et pas ascii
Je ne sais pas ce que fait mon logiciel FTP ; sinon, j'ai fait un transfert avec Filezilla, et pareil.
Mais merci pour connaître la version de PHP, mais phpinfo la donne déjà : 4.4.9, donc <5 : y a-t-il moyen de l'upgrader ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 15h30   #11
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
Envoyé par laurentSc Voir le message
Je ne sais pas ce que fait mon logiciel FTP ; sinon, j'ai fait un transfert avec Filezilla, et pareil.
Mais merci pour connaître la version de PHP, mais phpinfo la donne déjà : 4.4.9, donc <5 : y a-t-il moyen de l'upgrader ?
Voir la faq de 1&1 qui explique comment passer de php4 à 5
grunk 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 00h43.


 
 
 
 
Partenaires

Hébergement Web