Explorer une arboresence NTFS

Laifen
Invité n'ayant pas de compte PHPfrance

23 nov. 2009, 17:38

Bonsoir,

Voilà j'aurai besoin d'explorer une arborescence NTFS mais c'est assez spécial.
Mes fichiers du site web sont sur un disque dur (Linux) et mes fichiers que je dois lister sont sur un autre disque dur (F:\)

Est ce que PHP (je pense que oui) peut me lister mes fichiers qui sont sur un autre disque dur ?
J'ai essayé plusieurs scripts, mais en vain :|

Merci de votre aide.

ViPHP
ViPHP | 2287 Messages

23 nov. 2009, 18:12

Bonjour,

Il n'y a aucune difficulté particulière au niveau de PHP pour faire ça. Ce ne serait pas plutôt dans le montage de la partition NTFS sur ton linux que ça coince ?

PS : F:\ sous linux, ça ne veut pas dire grand-chose ;)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Laifen
Invité n'ayant pas de compte PHPfrance

23 nov. 2009, 19:14

F:\ ne veut rien dire sous Linux, je suis entièrement d'accord, mais le soucis n'est pas là.

Le soucis vient du fait que mes fichiers à lister sont sur un lecteur réseau avec la lettre F:
Mes scripts et fichiers pour mon site web sont sur un disque dur à part.

Lorsque je prend un script PHP pour lister le répertoire (je lui met juste F:\) il me met une erreur.

Merci de ton aide

ViPHP
ViPHP | 2287 Messages

23 nov. 2009, 19:34

Ton serveur tourne t-il sous windows ou sous linux ?

Le message d'erreur pourrait également aider à comprendre ton problème.

++
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Laifen
Invité n'ayant pas de compte PHPfrance

23 nov. 2009, 20:13

Pour moi il tourne sous Linux vu que lorsque je demande au script de m'afficher la racine (.) c'est des fichiers Linux.

Je te posterai le message d'erreur demain, je développe le site au boulot.

Merci

Eléphant du PHP | 369 Messages

23 nov. 2009, 20:58

Salut,
F:\ ne veut rien dire sous Linux, je suis entièrement d'accord, mais le soucis n'est pas là.
Le soucis vient du fait que mes fichiers à lister sont sur un lecteur réseau avec la lettre F:
Mes scripts et fichiers pour mon site web sont sur un disque dur à part.
Lorsque je prend un script PHP pour lister le répertoire (je lui met juste F:\) il me met une erreur.
Merci de ton aide
Ecrit et testé à la suite. Ca marche nickel.
  function explore_dir($dirName, $iLevel = 0)
  {
     $handle = opendir($dirName);

     while (($fileName = readdir($handle)) !== false)
     {
        if ($fileName != "." && $fileName != "..")
        {
           echo str_repeat("---", $iLevel);
           echo $fileName;
           echo "<br>";

           if (is_dir($fileName))
           { 
              opendir($fileName);
              explore_dir($fileName, $iLevel+=1);
           }
        }
     }
     closedir($handle);
  }
  explore_dir(".");
Libre à toi de jouer avec les fichiers récupérés. Mode, Capas etc...

@+ ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 nov. 2009, 01:02

Je suis d'accord avec Calimero.
Si tu serveur est sous Windows, je ne vois pas comment tu pourrais accéder à la lettre F:/, vu que c'est une technique Windows.

Par hasard, ce lecteur F:/, tu ne le verrais pas sur ton poste à toi, et tu voudrais y accéder depuis le serveur, qui est un autre PC ?
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

Laifen
Invité n'ayant pas de compte PHPfrance

24 nov. 2009, 10:55

FuZZyLine j'ai testé ton source, il fonctionne si je liste mon fichier racine où sont mes fichiers concernant mon site Web.
Mais maintenant je veux lister un répertoire de mon F:
Voici le chemin : F:\Qhse E-b\02. Procédures applicables et documents vierges\Achats\Gestion de parc

Ton script fonctionne avec ce chemin ?

Merci de ton aide

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 nov. 2009, 11:03

Laifen, si nous prenons la peine de te répondre, c'est pas pour t'embêter.
Alors si tu t'amuses à ignorer des réponses, je ne vois pas pourquoi tu viens poser une question :evil:
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

Laifen
Invité n'ayant pas de compte PHPfrance

24 nov. 2009, 11:09

zeus excuse moi je voulais éditer mon précédent post mais n'étant pas enregistré, je n'ai pas pu.

Donc pour répondre à ta question, mon serveur est sous Linux et oui je vois le F: (lecteur réseau) sur mon poste et oui je veux y accéder depuis le serveur.

Encore désolé de ne pas t'avoir répondu directement.

ViPHP
ViPHP | 4039 Messages

24 nov. 2009, 11:13

F:\Qhse E-b\02. Procédures applicables et documents vierges\Achats\Gestion de parc
Ouh, des espaces, des lettres accentués, pas beau !! :?

Ceci dit, tu échoues à nous communiquer ta situation clairement, c'est entièrement confus et on ne s'y retrouve pas. Et d'un point de vue technique, ça ne rime à rien.

Tu n'essayerais pas, par hasard, à faire lister par un script Php résidant sur un serveur (qui n'est pas ta machine) le contenu d'un répertoire local (ta machine) ? Car ça c'est impossible, et témoigne d'une certaine méconnaissance des fonctionnements du web.

La seule façon de faire traiter ce répertoire par le serveur, est de monter le répertoire sur le serveur linux, afin qu'il puisse y accéder directement.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Laifen
Invité n'ayant pas de compte PHPfrance

24 nov. 2009, 11:19

Tu n'essayerais pas, par hasard, à faire lister par un script Php résidant sur un serveur (qui n'est pas ta machine) le contenu d'un répertoire local (ta machine) ? Car ça c'est impossible, et témoigne d'une certaine méconnaissance des fonctionnements du web.
Oui c'est exactement ça, donc se serait impossible :(

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 nov. 2009, 11:40

Merci d'être revenu pour clarifier la situation ;)

Donc, pour t'expliquer ton soucis :
Tu as un serveur, qui héberge ton script PHP.
Tu as ton poste (c'est un autre PC) sur lequel tu as un lecteur réseau (F:/)

Quand tu lances ton script PHP, tu passes par ton navigateur (ton ordinateur) qui demande au serveur d'exécuter le script PHP. Le script PHP s'exécute donc sur le serveur.
Demander au script PHP d'accéder à la lettre F:/, c'est demander au serveur de venir sur ton poste à toi, en particulier (F:/ chez toi pourrait être G:/ sur un autre poste, voir même ne pas exister) pour retourner sur le serveur. Et ça, ce n'est pas possible.

Toutefois, si tu nous expliquais à quel endroit pointe F:/, on aurait peut être une solution.
Est-ce que le serveur sur lequel pointe F:/ est le même que celui qui héberge le script PHP ?
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

Laifen
Invité n'ayant pas de compte PHPfrance

24 nov. 2009, 11:51

zeus je vais te réexpliquer parceque c'est vrai que ce n'est pas évident.

J'ai mon PC sur lequel je développe un site, j'enregistre tous mes fichiers sur un serveur Apache je pense, sa lettre est O:
Donc le script PHP pour lister le répertoire est sur O:
Ce script PHP doit lister un répertoire qui est sur un lecteur réseau, sa lettre est F:

Voilà j'espère avoir été aqssez clair, sinon je peux m'expliquer encore ;).

Merci de ton aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 nov. 2009, 12:19

Quand tu dis que tes fichiers sont sur O:/, c'est que tu as un lecteur réseau monté sur ton PC. Cela ne signifie pas que ton script s'exécute depuis ton PC, mais sur le serveur.
Donc, mon explication précédente est la bonne.
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