Concaténation

Résolu
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012 - 23 avril 2009 à 14:24
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012 - 27 avril 2009 à 15:42
Bonjour.
J'ai un petit problème de syntaxe concernant la ligne suivante :

$html.='
'.include"('info".$fiche['cat'].".php')";.'
';

Le but est d'inclure le fichier infoX.php, X étant $fiche['cat'], le message est :

Parse error: parse error, unexpected '.'

Merci par avance de votre aide.



DapORoty

13 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
26 avril 2009 à 16:21
Salut,

Heu, je ne vois pas trop là. La ligne que je t'ai donnée fonctionne (je viens de faire un test au cas où)
Peux tu remontrer le code "complet" (au moins le contenu de la boucle)

Cordialement,

Kohntark -
3
lefter Messages postés 63 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 16 mai 2009
23 avril 2009 à 14:41
Tu ne peux pas mettre un include au milieu d'une ligne.
Un include ne renvoi pas de chaine (sortie de sortie : buffer de sortie)

$html.='
'.eval(file_get_contents('info'.$fiche['cat'].'.php')).'
';

Lefter
0
lefter Messages postés 63 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 16 mai 2009
23 avril 2009 à 14:53
ça doit fonction comme la fonction include mais sans renvoi d'erreur, ou tu peux utiliser aussi ceci :
<?php
function writeHTML($buffer){
    return $buffer;
}
ob_start('writeHTML');
echo '<html>';
echo '<head><title>Mon document</title></head>';
echo '';
echo'
';
include'info'.$ficher['cat'].'.php';
echo'
';
echo'';
echo'</html>';
ob_end_flush();

?>
0
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
23 avril 2009 à 15:21
Bonjour Lefter,
J'ai remplacer ma ligne par ta première proposition, apparemment ca donne info.php et non infoX.php :

Warning: file_get_contents(): Unable to access info.php
Warning: file_get_contents(info.php): failed to open stream: No such file or directory

Concernant ta deuxième proposition, ca me semble un peu compliqué, la ligne étant dans la boucle suivante :


else
{
echo '
';
$rq="SELECT DISTINCT cat FROM vae WHERE 1 ORDER BY cat";
$donnees=mysql_query($rq) or die(mysql_error());
while($fiche=mysql_fetch_array($donnees))
{
$html='[vae.php?cat='.$fiche['cat'].' ]';
$html.='

//c'est ici que je souhaiterais faire figurer le texte du fichier infoX.php (X étant $fiche['cat'])

';
echo $html;
}
echo '
';
}

C'est certainement très simple mais je me croque la tête la dessus.
0

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

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
23 avril 2009 à 19:56
Hello,

$html.='
'.include"('info".$fiche['cat'].".php')";.'
';

 =>

$html.='
'.include('info'.$fiche['cat'].'.php').'
';

Pour la remarque de lefter : non, désolé...include renvoie le contenu du fichier et l'inclus dans le script appelant. S'il y a du texte (html, js etc...) dans ce fichier, il sera affiché. Tout output reste un output, en clair.
0
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
24 avril 2009 à 09:44
Bonjour malalam,
Merci pour cette proposition ... mais ca donne :

Warning: main(info.php): failed to open stream: No such file or directory

Warning: main(): Failed opening 'info.php
' for inclusion (include_path='.:')

C'est curieux car en théorie il devrait trouver info7.php, la seule valeur disponible de $fiche['cat'] étant 7.

Je crois que ce sont les ' qui déconnent.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
24 avril 2009 à 10:16
Salut,

@malalam :
Sauf erreur de ma part :
$html = include('machin.php');
echo $html;

=> exécutera machin.php, mais $html sera égal à 1. Comme le dit Lefter, include exécutera le script, mais ne retourne pas le résultat.
Il n'est pas donc pas possible de le concaténer

Daporoty :
A mon avis il y a un pb de "conception" dans ta manière d'écrire le code. Tu peux toujours passer par eval mais c'est une source de bugs Par exemple si tu as du HTML, des tags <?php, ?>, etc ... ça devient vite prise de tête.

En fait il faudrait savoir ce que fait info7.php.
Ce n'est que du texte sans 1 ligne de php ? => un simple file_get_contents dans la ligne $html.= sera suffisant
Il y a du code à éxécuter ? => post le code

Cordialement,

Kohntark -
0
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
24 avril 2009 à 11:24
Bonjour Kohntark,
info7.php n'est que du texte, cepandant à chaque tour dans la boucle sera récupéré infoX.php pour chaque valeur X disponible, X étant $fiche['cat'].
Dans le code :

$html='[vae.php?cat='.$fiche['cat'].' ]';

J'affiche la photo vaeX.jpg et j'aimerais afficher à coté le texte infoX.php.
Comment faire simple ?
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
24 avril 2009 à 14:17
Si c'est du texte pourquoi ne pas mettre une extension .txt ??

$html .= '
'.file_get_contents('info'.$fiche['cat'].'.php').'
';

Cordialement,

Kohntark -
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 avril 2009 à 19:19
Oui effectivement j'avais zappé l'affectation, j'en étais resté à l'inclusion dans une balise
. Mea culpa.
0
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
26 avril 2009 à 14:57
Bonjour Kohntark

J'ai essayé et ca donne :

Warning: file_get_contents(): Unable to access info.php
Warning: file_get_contents(info.php): failed to open stream: No such file or directory

Ca affiche bien l'image vae7.jpg mais pas le document info7.php, au lieu de info.php.

DapORoty
0
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
27 avril 2009 à 15:04
Bonjour kohntark,

J'ai essayé et ca donne ca :

Warning: file_get_contents(): Unable to access info.htm
Warning: file_get_contents(info.htm): failed to open stream: No such file or directory

parce que info.php n'existe pas.
L'image vae7.jpg est bien affiché mais pas info7.php.

Je ne comprend pas.
0
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
27 avril 2009 à 15:42
Bonjour kohntark,
Ca marche nickel merci.
0
Rejoignez-nous