IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lire une variable php dans un script xml


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Lire une variable php dans un script xml
    Bonjour,

    J'ai crée un script xml pour attacher des informations a des documents archivés.
    Le travail que je produit est une aide à l'archivage de documents papiers et numériques présenté sous formes de pages php/html(en local).

    L'étape en question est censée ouvrir un xml à remplir à la main (je verrai plus tard pour peut-etre inclure un formulaire pour le remplissage) et je veux le champ : <id></id> se remplisse automatiquement em fonction du nombre de fichiers déjà archivés.

    Pour cela j'ai une fonction php qui compte le nombre de fichiers dans un dossier:
    Code : Autre - Sélectionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php
    //lister tous les elements de /arcdanse/metadonnees
         function count_files($dir)
         {
         $num = 0;
     
         $dir_handle = opendir($dir);
         while($entry = readdir($dir_handle))
         if(is_file($dir.'/'.$entry))
         $num++;
         closedir($dir_handle);
     
         return $num;
         } 
     
    $id=count_files("/Volumes/LaCie/ARCDANSE/Metadonnees"); ?>
    et je souhaite l'inclure au xml.
    J'ai lu lors de mes recherche sur le net qu'il faut passer le xml en .php et ajouter ce header:
    Code : Autre - Sélectionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    header('Content-Type:text/xml');
     ?>

    C'est donc ce que j'ai fait et cela donne ca:
    Code : Autre - Sélectionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
    header('Content-Type:text/xml');
     ?>
     
    <?xml version="1.0" encoding="iso-8859-1" ?>  
      <!--  Created by SLT Cuenin & SLT Chantrel --> 
      <involume name="" filesystem="NTFS" dategeneration="">
    <?php
    //lister tous les elements de /arcdanse/metadonnees
         function count_files($dir)
         {
         $num = 0;
     
         $dir_handle = opendir($dir);
         while($entry = readdir($dir_handle))
         if(is_file($dir.'/'.$entry))
         $num++;
         closedir($dir_handle);
     
         return $num;
         } 
     
    $id=count_files("/Volumes/LaCie/ARCDANSE/Metadonnees"); ?>
      <file>
      <id><?php echo $id ;?></id> 
      <extension></extension>  
      <fullname></fullname> 
      <size></size>  
      <datetime>
      <creation></creation> 
      <originalcreation></originalcreation> 
      </datetime>
      <summary>
      <title> </title> 
      <author> </author> 
      <subject> </subject> 
      <keywords> </keywords> 
      <Contributor> </Contributor> 
      <comments> </comments> 
      <TypeObject> </TypeObject> 
      <Editor_Distributor> </Editor_Distributor> 
      <pages> </pages> 
      <rights> </rights>  
      <chars> </chars> 
      <notes> </notes> 
      <origin> </origin> 
      <performers> </performers> 
      <places> </places> 
      <pictures> </pictures> 
      </summary> 
      </file>
    </involume>

    Malheureusement ca ne fonctionne toujours pas (je précise que ce xml/php se trouve dans /users/sites donc il ne devrait pas y avoir de problèmes de droits avec apache)

    merci d'avance


    Mac OS X / Safari 533.18.5

    ps:je ne sais pas si je suis dans la bonne section...

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    hello, le navigateur t'affiche quoi ? (et la source dans la navigateur ? )

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    alors l'erreur retournée est : Parse error: syntax error, unexpected T_STRING in /Users/macpro12hexagramuqam/Sites/MetaDoc.php on line 5


    ce qui correspond a la ligne :
    <?xml version="1.0" encoding="iso-8859-1" ?>




    la source dans le navigateur?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par masterkenobi Voir le message
    alors l'erreur retournée est : Parse error: syntax error, unexpected T_STRING in /Users/macpro12hexagramuqam/Sites/MetaDoc.php on line 5


    ce qui correspond a la ligne :
    <?xml version="1.0" encoding="iso-8859-1" ?>




    la source dans le navigateur?
    essayes de le mettre dans le php, peux y avoir confli avec le <? du <?xml

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    si je le met comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    header('Content-Type:text/xml');
    <?xml version="1.0" encoding="iso-8859-1" ?>  
     ?>
    il me retourne saarse error: syntax error, unexpected '<' in /Users/macpro12hexagramuqam/Sites/MetaDoc.php on line 3

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    encore pire, comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    header('Content-Type:text/xml');
    echo '<?xml version="1.0" encoding="iso-8859-1" ?>';
     ?>

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci donc maintenant le soucis c'est que sa me revoie uniquement le nombre de fichiers dans le dossier en question....

    moi ce que je voudrais c'est un xml comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    <file>
      <id>X</id> 
      <extension></extension>  
      <fullname></fullname> 
      <size></size>  
      <datetime>
      <creation></creation> 
      <originalcreation></originalcreation> 
      </datetime>
      <summary>
      <title> </title> 
      <author> </author> 
      <subject> </subject> 
      <keywords> </keywords> 
      <Contributor> </Contributor> 
      <comments> </comments> 
      <TypeObject> </TypeObject> 
      <Editor_Distributor> </Editor_Distributor> 
      <pages> </pages> 
      <rights> </rights>  
      <chars> </chars> 
      <notes> </notes> 
      <origin> </origin> 
      <performers> </performers> 
      <places> </places> 
      <pictures> </pictures> 
      </summary> 
      </file>
    X etant le nombre de fichiers dans le dossier au moment où j'appelle ce php (la valeur de $id)

    edit: en fait je veux même que sq m'affiche le xml modifiable pour pouvoir remplir les champs emtre les balises...

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'as quelle version de PHP ?

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    php 5.3.2

    en fait je m'explique... au départ le but est d'ouvrir cet xml "vierge" pour le remplir et que sa contienne des metadonnees

    sa marchait très bien mais apres je me suis dis que ce n'etait pas a l'utilisateur de savoir le numero d'idemtification du xml (qui decoule du nombre de fichiers dans le dossier Metadonnes)
    donc j'ai voulu compter ces fichier et inclure le resultat directement dans le xml que l'on pourrqit remplir (qvec un textedit pqr exemple) comme si c t toujours le meme xml mais avec un champ deja rempli: <id>

  10. #10
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    PHP dispose des manières plus propre et plus pro de générer des xmls, l'équivalent de ton code serait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $document_xml = new DOMDocument( '1.0', 'iso-8859-1' );
    $document_xml->formatOutput = true;
     
    $racine = $document_xml->createElement( 'involume' );
    $racine->setAttribute( 'name', '' );
    $racine->setAttribute( 'filesystem', 'NTFS' );
    $racine->setAttribute( 'dategeneration', '' );
     
    $document_xml->appendChild( $racine );
     
    $file = $document_xml->createElement( 'file' );
    $racine->appendChild( $file );
     
    //Ajout des enfants de file
    $file->appendChild( new DOMElement( 'id', $id ) );
    $file->appendChild( new DOMElement( 'extension' ) );
    $file->appendChild( new DOMElement( 'fullname' ) );
    //...
     
    echo $document_xml->saveXML();
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

Discussions similaires

  1. [MySQL] Envoyer une variable PHP dans un script JS
    Par lorentdups dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 31/12/2013, 20h20
  2. Récupération d'une variable PHP dans mon script JS
    Par dojbouli dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/04/2013, 13h52
  3. recuperer une variable JavaScript dans un script php
    Par touf35 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/06/2008, 18h31
  4. Réponses: 6
    Dernier message: 04/02/2007, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo