Version complète: sur le forum Webmaster Hub : Variable dans une variable (array)
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
zimounet
Salut à tous,

J'me suis toujours pris la tete pour ce genre de truc, et j'ai toujours laissé tombé, mais la j'en ai vraiment besoin.

Alors le plus simple est de présenter mon code:

CODE
foreach ($items as $item)
   {
$html .= "<li><a href=\"".$item[''.$lien.'']."\" target=\"_blank\">";
   $html .= $item[''.$titre.'']."</a></li>\n";
   }


Vous l'aurez compris, j'aimerais que les variable $liens et $titre soient "écrite" par le parser php avant que ce dernier prennent en compte les var array tableau $item.

Vous allez me demander le pourquoi du besoin de faire ça...

Il s'agit d'un parser RSS, pour lequel j'utilise la classe magpieRSS. Le nom des item et l'adresse du flux RSS doivent etre définit par des variables d'url récupéré plus haut. (les variables $lien et $titre en font partit)

Edit: Je viens d'essayer ceci:

CODE
foreach ($items as $item)
   {
   
 $item['lien'] = $item['$lien'];
 $item['titre'] = $item['$titre'];
    $html .= "<li><a href=\"".$item['lien']."\" target=\"_blank\">";
     $html .= $item['titre']."</a></li>\n";
   }


Ne marche pas non plus :s
Jok
Je pense que la réponse se trouve du côté de la fonction eval.

Ca devrait être dans le genre :
CODE
eval("\$lien = \$item[\"$lien\"];");


Essai smile.gif
TheRec
Bonjour,


la déclaration dynamique de clé de tableau, au moyen de variables se fait avec cette syntaxe :
CODE
$item[$keyname] = value

Un peu de lecture du manuel PHP au sujet des tableaux
CITATION
Note :  Cela ne signifie pas que vous devez toujours  mettre les clés entre guillemets. Vous n'allez pas utiliser les guillemets avec les clés qui sont des constantes ou des variables, car cela empêchera PHP de les interpréter correctement.
Source: http://php.benscom.com/manual/fr/language.types.array.php

Ce qui donnerait :
CODE
foreach ($items as $item) {
 $html .= "<li><a href=\"".$item[$lien]."\" target=\"_blank\">";
 $html .= $item[$titre]."</a></li>\n";
}
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.