Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3235 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  opendir

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

opendir

n°1581091
Pulsar-
Posté le 30-06-2007 à 19:41:10  profilanswer
 

Bonjour, je bloque sur un truc tout con que vous connaissez tous : opendir
 
Citation : Pas de titre
 
$open = opendir($rep);
while ($file = readdir($open)){
   if ($file != "." && $file!="index.php" && $file!=".." && $file!="dl.php" && $file!="style.css" ) {
      if (is_dir($file)){
         $ListFiles[$i]=$file;
         $i++;
      }
   }
}
 
 
alors voila ca fonctionne parfaitement lorsque par exemple
 
$rep = '.';
 
mais les fonctions is_file et is_dir ne fonctionnent plus du tout lorsque
 
$rep = 'video';
ou encore
$rep = 'video/sous dossier';
 
 
J'attends vos conseils ;)

mood
Publicité
Posté le 30-06-2007 à 19:41:10  profilanswer
 

n°1581094
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 30-06-2007 à 19:59:09  profilanswer
 

./video
./video/sous dossier

 

A essayer


Message édité par WiiDS le 30-06-2007 à 19:59:17

---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1581095
Pulsar-
Posté le 30-06-2007 à 20:09:14  profilanswer
 

Ca ne fonctionne toujours pas.

n°1581098
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 30-06-2007 à 20:36:49  profilanswer
 

./video/
./video/sous dossier/
 
[:dakans]


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1581100
Pulsar-
Posté le 30-06-2007 à 20:44:30  profilanswer
 

Fonctionne toujours pas.

n°1581102
Sve@r
Posté le 30-06-2007 à 21:03:24  profilanswer
 

Pulsar- a écrit :

Bonjour, je bloque sur un truc tout con que vous connaissez tous : opendir
 
Citation : Pas de titre
 
$open = opendir($rep);
while ($file = readdir($open)){
   if ($file != "." && $file!="index.php" && $file!=".." && $file!="dl.php" && $file!="style.css" ) {
      if (is_dir($file)){
         $ListFiles[$i]=$file;
         $i++;
      }
   }
}
 
 
alors voila ca fonctionne parfaitement lorsque par exemple
 
$rep = '.';
 
mais les fonctions is_file et is_dir ne fonctionnent plus du tout lorsque
 
$rep = 'video';
ou encore
$rep = 'video/sous dossier';
 
 
J'attends vos conseils ;)


 
Est-ce que ton serveur Apache a accès au répertoire "video" (droits, répertoire bien au bon endroit (à la racine de "DocumentRoot" ) etc...)
Pour vérifier, tu demandes l'url "http://<mon_serveur>/video" et tu regardes ce que ça fait...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1581104
Pulsar-
Posté le 30-06-2007 à 21:45:02  profilanswer
 

Oui bien sur que j'ai l'accès. Il n'y a aucune erreur. C'est un serveur free.
 
J'arrete pas de tenter des trucs different et là j'ai une évolution :
 
$open = opendir("drole" );
while ($file = readdir($open)){
if (is_dir($file)){
echo 'dir'.$file.'<br>';
}
else if (is_file($file)){
echo 'file'.$file.'<br>';
}
}
 
Dans mon repertoire 'drole' il y a plus de 20 vidéos en .mpg, .avi et .wmv , un répértoire nommé 'test' ainsi que les fichiers suivant :
 
addsql.php
dl.php
index.php
style.css
 
Et voici apres execution du script le résultat affiché par le code vu plus haut :
 
dir.
dir..
filestyle.css
filedl.php
fileindex.php
 
Gros mystère dans l'affaire; incohérence totale (le addsql.php et toutes les vidéos ne sont pas compatibilisée, le repertoire 'test' non plus).

n°1581106
Pulsar-
Posté le 30-06-2007 à 22:03:52  profilanswer
 

Je viens de creer un tout nouvel ftp totalement vierge encore sur l'hebergeur free

 

Voivi le contenu du ftp : (1 dossier contenant 4 fichiers et un fichier)

 

[DIR]drole
   >addsql.php
   >dl.php
   >index.php
   >style.css
[FILE]index.php

 


Voici le code de la page index.php placé à la racine:

 
Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3.         <head>
  4.                 <title>ftp</title>
  5.    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.         </head>
  7.         <body>
  8. <h1>FTP</h1>
  9. <?php
  10. $open = opendir("./drole" );
  11. while ($file = readdir($open)){  
  12.  if ($file != ".." ){
  13.   if (is_dir($file)){
  14.   echo 'dir'.$file.'<br>';
  15.   }
  16.   else if (is_file($file)){
  17.   echo 'file'.$file.'<br>';
  18.   }
  19.  }
  20. }
  21. ?>
  22. </body>
  23. </html>
 

et voyez vous meme le résultat :

 

http://photonpulsar.free.fr/

 



Message édité par Pulsar- le 30-06-2007 à 22:05:33
n°1581122
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 30-06-2007 à 23:21:04  profilanswer
 

Mets ton serveur Free en php 5 ca améliora p'têtre les choses :/


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1581128
Pulsar-
Posté le 30-06-2007 à 23:32:22  profilanswer
 

Si passer en php5 signifie renommer index.php en index.php5 alors le resultat est encore pire puisque Voici la reponse du serveur :
 
FTP
dir.

mood
Publicité
Posté le 30-06-2007 à 23:32:22  profilanswer
 

n°1581131
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 30-06-2007 à 23:40:36  profilanswer
 

Pulsar- a écrit :

Si passer en php5 signifie renommer index.php en index.php5 alors le resultat est encore pire puisque Voici la reponse du serveur :
 
FTP
dir.


Non mais c'est quoi cette nouvelle génération d'handicapé qui ne savent pas se servir de google ? [:dakans]²²²²²
 
http://www.google.fr/search?hl=fr& [...] ogle&meta=


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1581137
Pulsar-
Posté le 30-06-2007 à 23:53:43  profilanswer
 

Oui, ba je suis débutant aussi; faut m'escuser; mais il parait qu'en mettant une extension en .php5 ca fonctionne également.
Enfin bref, en metant le serveur free ne php5 ca donne le même résultat.

n°1581203
Pulsar-
Posté le 01-07-2007 à 14:19:36  profilanswer
 

Bon ne voyant aucune solution de la part des internaute sur 2 forums et après avoir essayé toutes les combinaisons et possibilité durant plus de 2 heures j'ai abandonné et je contourne le problème en passant par ce code :

Code :
  1. $open = opendir("./drole" );
  2. while ($file = readdir($open)){  
  3.  if ($file != ".." ){
  4.   $pos = strpos($file,'.');
  5.   if ($pos === false) {
  6.    echo 'dir '.$file.'<br>';
  7.   }
  8.   else {
  9.    if ($pos == (strlen($file)-4)){
  10.     echo 'file '.$file.'<br>';
  11.    }
  12.   }
  13.  }
  14. }
 

Si vous trouvez quelque chose d'équivalent et moins lourd en cout de ressource machine je suis preneur.


Message édité par Pulsar- le 01-07-2007 à 14:19:44
n°1581204
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 01-07-2007 à 14:21:49  profilanswer
 

Code :
  1. <?php
  2. // Notez que !== n'existait pas avant 4.0.0-RC2
  3.  
  4. if ($handle = opendir('/chemin/vers/fichiers')) {
  5.    echo "Directory handle: $handle\n";
  6.    echo "Files:\n";
  7.  
  8.    /* Ceci est la façon correcte de traverser un dossier. */
  9.    while (false !== ($file = readdir($handle))) {
  10.        echo "$file\n";
  11.    }
  12.  
  13.    /* Ceci est la MAUVAISE façon de traverser un dossier. */
  14.    while ($file = readdir($handle)) {
  15.        echo "$file\n";
  16.    }
  17.  
  18.    closedir($handle);
  19. }
  20. ?>


 
Tout droit tiré de la doc PHP : Ta facon de traverser les dossiers est mauvaise.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1581211
Pulsar-
Posté le 01-07-2007 à 14:48:03  profilanswer
 

Bien trouvé mais ... ca ne fonctionne toujours pas quelle que soit la façon de traverser les dossiers !

n°1581300
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 01-07-2007 à 21:38:12  profilanswer
 

Pulsar- a écrit :

Bien trouvé mais ... ca ne fonctionne toujours pas quelle que soit la façon de traverser les dossiers !


C'est en accumulant ce genre d'erreurs qu'on finit par avoir un script complètement foireux. Cela dit ton cas m'intéresse, je vais tester ca sur mon Free :jap:


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1581319
Pulsar-
Posté le 01-07-2007 à 23:05:29  profilanswer
 

Ba là il ne peut y avoir d'accumulation puisque le code est vraiment leger; de plus tous les tutoriaux que j'ai vu utilisent la méthode que j'avais employé et après finalement après les 2 codes donnent le meme resultat. Donc je ne pense pas qu'on puisse parler d'erreur.
 
Enfin bref, j'ai tappé ma propre fonction qui permet de reconnaitre un dossier d'un fichier avec du code un peu plus élaboré que ce que j'ai posté ci-dessous.
 
Pour moi ce opendir restera un mystère mais pas un obstacle infranchissable.
 
Et oui, teste ca sur ton Free pour confirmer ou infirmer le phénomène qu'on a là. ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  opendir

 

Sujets relatifs
Pb avec la fonction opendirpb fonction opendir() sur serveur distant
opendir/readdir path réseau sous xp sp2[PHP] Opendir qui échoue, alors que le répertoire existe
[PHP] opendir () / readdir () ---> ca rajoute des "..."[PHP] opendir() impossible sur un lecteur réseau
Plus de sujets relatifs à : opendir


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)