PB Concaténation PHP

Résolu
virtualsof Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   -  
virtualsof Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

15 réponses

kij_82 Messages postés 4089 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
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   100
 
Salut,

Ca ne serait pas quelques chose comme ça ?
$chemin= '<desc big="' . $rep . '/' . $vign . '/' . $compteur . '"/>'; 
0
JuB0
 
Salut,
et $chemin = "<desc big='".$rep ."'/'".$vign."'/'".$compteur."'/>"; ?
0
JuB0
 
2 fois grillaid !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
virtualsof Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   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
virtualsof Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   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
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   100
 
J'ai pas regardé le reste mais pour le parse error, il manque déjà un ;
après
$vign = 'thumbs'
0
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   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
kij_82 Messages postés 4089 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
virtualsof Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   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
kij_82 Messages postés 4089 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
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   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
virtualsof Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   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
kij_82 Messages postés 4089 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
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   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
virtualsof Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   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