Nous sommes le Mar 22 Juil, 2025 20:48
Supprimer les cookies

Page 1 sur 31, 2, 3 Suivant[faisabilité] un script php qui browse des dossiers et...

Sur le logiciel libre en général ou un logiciel libre en particulier

Jeu 19 Jan, 2006 11:58

tcho !

n'étant absolument pas programmeur je me pose la question suivante:

est-il possible et est-ce facile de créer un script php qui s'executerait à la racine de plusieurs dossiers, qui naviguerait à l'interieur de tous les sous dossiers, et qui a partir de ça créerait un arbre XML avec dedans: le nom des dossiers - le nom des fichiers (séparés par dossiers donc)

si vous pouviez juste me dire si c'est faisable et me donner quelque pistes, je transmettrai vos conseils à quelqun qui s'y connais mieux en php que moi, ça l'aidera surement :D

le but de la manoeuvre est donc en clair d'extraire facilement en XML l'arborescence complete d'un site à l'aide d'un script php.

thanks.
www.inkboy.fr
...Mais chanter, rêver, rire, passer, être seul, être libre, avoir l' oeil qui regarde bien, la voix qui vibre, mettre, quand il vous plaît, son feutre de travers, pour un oui, pour un non, se battre, -ou faire un vers ! | cyrano de bergerac, ACTE II, SCENE 8
Yosh

Messages : 657

Jeu 19 Jan, 2006 12:47

Salut (ou Tchô, koi! :D)

Moi j'irais pas chercher midi à quatorze heures :D Tu prends le script de page d'accueil de easyphp ou wampserver :wink:

Je pense que ça marchera tout seul :il te détaille tout ce que tu as comme répertoires placé sous le serveur :P

Elle est pas belle la vie ? :wink:

Tolosano

P.S. : Je vois également le script de yehe : très bon logiciel à découvrir d'ailleurs :wink:
Tolosano

Messages : 1940
Géo : Toulouse

Jeu 19 Jan, 2006 12:58

oui c'est tout à fait faisable. Il faudra faire un script récursif qui fera en gros:
- je liste les fichiers et dossiers
- pour chaque
- - si c'est un dossier (autre que . et .. lorsque tu es sous GNU/Linux) alors je sauvegarde que c'est un dossier et je m'appelle moi-même (récursif)
- - si c'est un fichier alors je sauvegarde que c'est un fichier

très rapidement ça doit faire un truc un peu comme ça:
Code: Tout sélectionner
function liste ($repertoire) {
//début de la liste
$dir = opendir($repertoire);

//on parcourt tous les repertoires
while ( $f = readdir($dir) ) //liste les differents fichiers et dossiers du dossier $repertoire
{
 if ( $f !="." && $f != ".." ) { 
  if( is_dir($repertoire."/".$f) ) {
   //on sauvegarde l'arbre
   //instruction pour sauvegarder l'arbre
   //on s'appelle soi-même
   liste( $repertoire."/".$f );
  }
  if( is_file($repertoire."/".$f) ) {
   //on sauvegarde l'arbre
   //instruction pour sauvegarder l'arbre
  }
 }
}
}


bon il doit très certainement avoir des erreurs mais en gros je pense que ça doit pouvoir fonctionner à peu près (je ne l'ai pas testé)
Invité

Jeu 19 Jan, 2006 14:41

bonjour,
je cherche à faire à peu près la même chose ....
Seul problème pour le xml, je crois qu'il faut appelé des classes xml donc, pour pouvoir l'utiliser?

Sinon, je suppose que pour écrire un xml c'est comme écrire dans un fichier texte?

...
toojee

Messages : 3

Jeu 19 Jan, 2006 15:05

kheupain !!Image

oui en fait toute la difficulté a l'air de résider dans:

Code: Tout sélectionner
   //on sauvegarde l'arbre
   //instruction pour sauvegarder l'arbre
   //on s'appelle soi-même


j'ai essayé de me plonger dans lussumo filebrowser (qui fonctionne un peu pareil), mais je n'y comprends goutte. et pis pour construire un truc en XML et le sauver... aie aie aie.

bon allez on interesse la partie: si tout le monde y met du sien je diffuse le code source final de cette fonction sous licence GNU/GPL !!! Image. mais non c'est pas pour attirer du monde sur le thread :D Image
www.inkboy.fr
...Mais chanter, rêver, rire, passer, être seul, être libre, avoir l' oeil qui regarde bien, la voix qui vibre, mettre, quand il vous plaît, son feutre de travers, pour un oui, pour un non, se battre, -ou faire un vers ! | cyrano de bergerac, ACTE II, SCENE 8
Yosh

Messages : 657

Jeu 19 Jan, 2006 15:39

allez, cadeau:
Code: Tout sélectionner
<?php

function liste ($repertoire , &$file) {
   //début de la liste
   $dir = opendir($repertoire);
   
   //on parcourt tous les repertoires
   //liste les differents fichiers et dossiers du dossier $repertoire
   while ( $f = readdir($dir) ) {
      if ( $f !="." && $f != ".." ) {
         if( is_dir($repertoire."/".$f) ) {
            //on sauvegarde l'arbre
            $file .= '<dossier name="' . $f . '">';
            //on s'appelle soi-même
            liste( $repertoire."/".$f , $file);
            $file .= '</dossier>';
         }
         if( is_file($repertoire."/".$f) ) {
         //on sauvegarde l'arbre
         $file .= '<fichier name="' . $f . '" />';
         }
      }
   }
}

$rep = '/home/leviatha/www';
$file = '';

liste( $rep , $file );

echo $file;

?>

tu dois bien entendu changer la valeur de $rep. Ca te met tout sur une ligne mais bon je vais pas tou te faire non plus ;-)
ça va donner quelque chose comme:
Code: Tout sélectionner
<dossier name="images">
   <fichier name="valid.jpg" />
   <fichier name="non_valid.jpg" />
   <dossier name="ss_dossier">
       <fichier name="un_texte.txt" />
   </dossier>
</dossier>

Il faudra penser à mettre les déclaration en début de fichier (le <xml .... ) et en fin de fichier et voilà.

Cordialement,
Léviathan

PS: ne demandez pas la licence il n'y en a pas ([gotopost=38317]je me suis déjà exprimé sur ce sujet[/gotopost])
Invité

Jeu 19 Jan, 2006 16:15

:shock: :shock: :shock: bah ? menfin ? ou elle est passé la réponse de thetis ? elle avait l'ar interessante !! bon si tu est en train de revoir ta copie pour moi, c'est zentil Image

leviathan a écrit:PS: ne demandez pas la licence il n'y en a pas ([gotopost=38317]je me suis déjà exprimé sur ce sujet[/gotopost])
oui c'est sur en fait je n'avais pas vu ça sous cet angle...
www.inkboy.fr
...Mais chanter, rêver, rire, passer, être seul, être libre, avoir l' oeil qui regarde bien, la voix qui vibre, mettre, quand il vous plaît, son feutre de travers, pour un oui, pour un non, se battre, -ou faire un vers ! | cyrano de bergerac, ACTE II, SCENE 8
Yosh

Messages : 657

Jeu 19 Jan, 2006 16:23

Yosh a écrit::shock: :shock: :shock: bah ? menfin ? ou elle est passé la réponse de thetis ? elle avait l'ar interessante !! bon si tu est en train de revoir ta copie pour moi, c'est zentil
C'étais écraser des fourmis avec des astéroides. Il fallait un peu de temps pour tout mettre au clair et adapter à ton cas. Temps que je n'ai malheureusement pas. :(
Attentyon, ponaytte maychante !
Téthis

Avatar de l’utilisateur
Messages : 3895
Géo : De passage chez les cathares

Lun 23 Jan, 2006 17:15

ok merci pour vos réponses, je vais étudier la question!
toojee

Messages : 3

Lun 23 Jan, 2006 17:55

pourquoi il est en "réglé" le topic ? c'est pas réglé encore...
www.inkboy.fr
...Mais chanter, rêver, rire, passer, être seul, être libre, avoir l' oeil qui regarde bien, la voix qui vibre, mettre, quand il vous plaît, son feutre de travers, pour un oui, pour un non, se battre, -ou faire un vers ! | cyrano de bergerac, ACTE II, SCENE 8
Yosh

Messages : 657

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit