PB Concaténation PHP

Résolu/Fermé
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 - 13 déc. 2007 à 11:17
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 - 13 déc. 2007 à 15:25
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
13 déc. 2007 à 11:23
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 jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
13 déc. 2007 à 11:24
Salut,

Ca ne serait pas quelques chose comme ça ?
$chemin= '<desc big="' . $rep . '/' . $vign . '/' . $compteur . '"/>'; 
0
Salut,
et $chemin = "<desc big='".$rep ."'/'".$vign."'/'".$compteur."'/>"; ?
0
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 mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
13 déc. 2007 à 11:48
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 mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
13 déc. 2007 à 12:34
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 jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
13 déc. 2007 à 12:44
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 jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
13 déc. 2007 à 12:48
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
13 déc. 2007 à 13:25
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 mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
13 déc. 2007 à 14:05
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
13 déc. 2007 à 14:12
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 jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
13 déc. 2007 à 14:13
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 mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
13 déc. 2007 à 14:50
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
13 déc. 2007 à 14:55
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 jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
13 déc. 2007 à 14:58
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 mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
13 déc. 2007 à 15:25
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