Bonjour à tous
Voici mon petit souci du jour...
J'ai un tableau associatif contenant, par exemple, une liste de selecteurs de style CSS :
$styles['css1'] = 'premier';
$styles['css2'] = 'deuxieme';
$styles['css3'] = 'troisieme';
Je voudrais remplacer, dans un code Html, toutes les pseudo-balises "<:cssN:>" par la valeur correspondante issue du tableau de styles, voici un exemple de code Html :
$contenu = '<div class="<:css2:>">
<p class="<:css1:>">Texte</p>
<p class="<:css3:>">Texte</p>
</div>';
Donc, je me suis dit qu'un simple "preg_replace" devrait faire l'affaire... voici une des pistes que j'ai exploré :
preg_replace("#<:(\w+):>#", $styles['$1'], $contenu);
echo $contenu;
Bon, ça ne marche pas

... j'ai donc essayé autre chose, que voici :
function get_item($item) {
global $styles;
return $styles[$item];
}
preg_replace("#<:(\w+):>#e", "get_item('$1')", $contenu);
echo $contenu;
Bon bein... pas mieux que la première piste
La solution ne doit sûrement pas être bien difficile, mais là

je bloque
Un petit coup de pouce serait le bienvenu
Merci à tous
OUPS
Ne tappez pas
J'ai oublié de mettre une variable devant le "preg_replace" :
function get_item($item) {
global $styles;
return $styles[$item];
}
$contenu = preg_replace("#<:(\w+):>#e", "get_item('$1')", $contenu);
echo $contenu;
Bon, je crois que je ferai mieux d'aller pioter un peu là
Désolé pour le bruit