PB Concaténation PHP

Résolu
virtualsof Messages postés 112 Statut Membre -  
virtualsof Messages postés 112 Statut Membre -
Bonjour à tous,
Voila mon ptit souci.

Je cherche à faire une concaténation dans un fichier PHP. Concaténation qui génére les données qui vont êtres insérées dans le fichier XML lui même généré par le fichier PHP... J'me comprends!

le code :

$fichierXML = "sourceXMLgalerie.xml";
//Initialise le compteur à 0
$compteur = 0;
//Répertoire des images à lister
$rep = 'repertoire';
//Constante Vignette
$vign = 'thumbnails'

$compteur = mon array

voila pour les variables et ensuite le résultat après avoir été lire dans un répertoire le nom des fichiers a lister, je voudrai créer le chemin par :

$chemin=("<desc big='$rep .'/'.$vign.'/'.$compteur'/>");

Mais voila, je n'arrive pas à trouver cette syntaxe.

Si qq de bien intentionné et qui aurai un réponse et surtout vois ce message, je lui en serait éternellem.. non reconnaissant tout cours de bien vouloir m'aider :p

MERCI
Configuration: Windows Vista
Firefox 2.0.0.11

15 réponses

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Si tu veux concaténer tes informations pour recréer le chemin fais plutot comme ca :
    $chemin= "<desc big='".$rep."/".$vign."/".$compteur."'/>"; 
    

    0
  2. Dr Zoidberg Messages postés 547 Statut Membre 100
     
    Salut,

    Ca ne serait pas quelques chose comme ça ?
    $chemin= '<desc big="' . $rep . '/' . $vign . '/' . $compteur . '"/>'; 
    
    0
  3. JuB0
     
    Salut,
    et $chemin = "<desc big='".$rep ."'/'".$vign."'/'".$compteur."'/>"; ?
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. virtualsof Messages postés 112 Statut Membre 17
     
    WHAOU super rapide les gars, merci...

    J'essaye et je vous dis ce qu'il en est.

    Par contre, si je peux me permettre j'ai un autre ti souci :

    Comment je fais pour passer ces valeurs au php qui sont renvoyées à flash ?

    J'ai essayé :

    <param name="movie" value="../SlideShowModule.swf?galleriexml=XMLGenerator.php&rep=repertoire" />

    mais encore une fois je bloque. :(

    Ne riez pas svp :p
    0
  6. virtualsof Messages postés 112 Statut Membre 17
     
    Bon alors ca ne marche pas :(

    Pour tout vous dire, j'ai utilisé cette source : http://semifershome.free.fr/semifer/index.php?2006/08/20/9-generer-un-fichier-xml-a-partir-d-un-script-php

    dont j'ai modifié qq lignes :

    Fichier PHP : --------------------------------------------------------------------

    <?php
    //Fichier XML de destination
    $fichierXML = "galerieSourceGenerator.xml";
    //Initialise le compteur à 0
    $compteur = 0;
    //Répertoire des images à lister
    $rep = 'slideshows/societe/';
    //Constante Vignette
    $vign = 'thumbs'
    //Arborescence
    $list = array('.','..');
    
    //Fonction de listage du répertoire------------------------
    function listFolder($dest_files) {
        GLOBAL $list;
        $dossier=opendir($dest_files);
        while ($fichier = readdir($dossier)) {
            if (!in_array($fichier, $list)){
                //On incrémente de +1 à chaque fois,
                //ce qui correspond au numéro de l'image
                //dans le fichier XML généré.
                $compteur++;
                //C'est la variable qui contient le résultat
               $e.=('<desc big="' . $rep . '/' . $compteur . '" small="' . $rep . '/' . $vign . '/' . $compteur . '" com='$fichier'/>'); // Merci à vous
            }
        }
        //variable retournée par la fonction
        return $e;
    }
    
    //On récupère le résultat de la fonction dans une variable
    $dynamic_content = listFolder($rep);
    
    //On ouvre le fichier en mode écriture
    //$openfichier = fopen($fichierXML,"r+");
    $openfichier = fopen($fichierXML,"w");
    
    //Entête du fichier XML
    fwrite($openfichier,'<?xml version="1.0" encoding="utf-8"?>');
    
    //Balise d'ouverture
    fwrite($openfichier,'<gallerie>');
    
    //On remplit le fichier avec le résultat retourné par la fonction
    fwrite($openfichier,$dynamic_content);
    
    //Balise de fermeture
    fwrite($openfichier,'</gallerie>');
    
    //On ferme le fichier
    fclose($openfichier); 
    
    ?>


    ----------------------------------------------------------------------------------------------------

    Et voici le XML que j'aimerai générer :

    <gallerie>
      <desc big="image1.jpg" small="thumbs/image1.jpg" com="image1.jpg"/>
      
    </gallerie>


    ----------------------------------------------------------------------------------------------------

    D'ans l'action script :

    galleriexml.load("galerieSource.php");


    Et enfin le code HTML :

    <param name="movie" value="../SlideShowModule.swf" />


    J'ai donc comme erreur :

    Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\SiteWeb\galeries\SlideShowReader.php on line 11

    D'avance merci pour vos conseils eclairés et de passer du temps la dessus
    0
  7. Dr Zoidberg Messages postés 547 Statut Membre 100
     
    J'ai pas regardé le reste mais pour le parse error, il manque déjà un ;
    après
    $vign = 'thumbs'
    0
    1. Dr Zoidberg Messages postés 547 Statut Membre 100
       
      et remplace
      $e.=('<desc big="' . $rep . '/' . $compteur . '" small="' . $rep . '/' . $vign . '/' . $compteur . '" com='$fichier'/>'); 
      

      par (plus simple)
      $e.="<desc big=\"$rep/$compteur\" small=\"$rep/$vign/$compteur\" com=\"$fichier\" />"; 
      

      0
  8. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Comme le souligne Zoidberg, la seule erreur apparente est le ';' manquant.
    Après j'ai regardé la source, et elle semble nickel, même pour ce que tu nous as demandé en premier... donc attention aux erreurs de recopies ;)

    Bon courage pour la suite.
    0
  9. virtualsof Messages postés 112 Statut Membre 17
     
    ERFFF oui merci effectivement maintenant je n'ai plus cette erreur et en plus ca marche !!!

    MERCI Dr Zoidberg.

    MAIS (et oui...) ca me renvoie un truc bizarre...

    Voici le code XML généré :
    <desc big="/1" small="//1" com="NomDuFichier.jpg" />


    Je ne comprend pas pq il me numerote les fichiers jusqu'au nombre de fichiers contenus dans le répertoire au lieu de récuperer le nom tout simplement.

    Alors voici ce que j'ai essayé :

    $e.="<desc big=\"$rep/climextSlideSociete(".$compteur.").jpg\" small=\"$rep/$vign/climextSlideSociete(".$compteur.").jpg\" com=\"$fichier\"/>\n";


    Et ca me retourne :

    <desc big="/ImageSlideShow(1).jpg" small="//ImageSlideShow(1).jpg" com="ImageSlideShow(10).jpg" />


    Dailleurs pq il m'affiche pas la valeur de $vign et de $rep ?

    En fait ca me suffirait amplement si cette solution pouvait fonctionner...

    Encore merci
    0
  10. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Et si tu remplace :
    $rep = 'slideshows/societe/';
    //Constante Vignette
    $vign = 'thumbs';

    Par :
    $rep = "slideshows/societe/";
    //Constante Vignette
    $vign = "thumbs";
    


    Ca te donne quoi ?
    0
  11. Dr Zoidberg Messages postés 547 Statut Membre 100
     
    Le problème c'est que tes variables $rep et $vign sont définies hors de la fonction listFolder et qu'elles ne sont ni globales, ni passées en paramètres à la fonction. Le plus propre serait de les passées en paramètres.
    0
  12. virtualsof Messages postés 112 Statut Membre 17
     
    Pour répondre à Kij_82, ca ne change rien.

    Pour répondre au Dr Zoidberg : heu... bon... bin... ok

    Vais essayer de chercher encore :(

    En tout cas et je ne le dirais jamais assez : merci
    0
  13. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Il te suffit juste d'inclure tes deux variables dans ta fonction et ca marchera, c'est qu'à voulu dire Dr :
    function listFolder($dest_files) {
        GLOBAL $list;
        $dossier=opendir($dest_files);
        $rep = 'slideshows/societe/';
        $vign = 'thumbs';
    
        while ($fichier = readdir($dossier)) {
            if (!in_array($fichier, $list)){
                //On incrémente de +1 à chaque fois,
                //ce qui correspond au numéro de l'image
                //dans le fichier XML généré.
                $compteur++;
                //C'est la variable qui contient le résultat
               $e.=('<desc big="' . $rep . '/' . $compteur . '" small="' . $rep . '/' . $vign . '/' . $compteur . '" com='$fichier'/>'); // Merci à vous
            }
        }
        //variable retournée par la fonction
        return $e;
    }
    

    0
  14. Dr Zoidberg Messages postés 547 Statut Membre 100
     
    Si je n'ai pas été clair, tu peux essayer de remplacer:
    function listFolder($dest_files,) 

    par
    function listFolder($rep,$vign)

    et
    $dynamic_content = listFolder($rep);
    

    par
    $dynamic_content = listFolder($rep,$vign);
    

    et
    $dossier=opendir($dest_files);
    

    par
    $dossier=opendir($rep);
    


    ... si je ne me trompe pas
    0
  15. virtualsof Messages postés 112 Statut Membre 17
     
    BRAVO !!!

    Je m'incline, ca marche nickel !

    Hormis le fait qu'il envoie comme variable à "$com" le nom du fichier qui se trouve en tête du répertoire :

    <desc big="slideshows/societe/ImageSlideShow(1).jpg" small="slideshows/societe/thumbs/ImageSlideShow(1).jpg" com="ImageSlideShow(10).jpg"/>


    Mais ca en fait, c'est le cadet de mes soucis dans l'immédiat !

    Encore un grand merci à tous et spéciale dédicace au Docteur et a Kij_82 !

    A BIENTÔT ! hihihihi

    RESOLVU !
    0