Bonjour,
Je met en place un système de propositions d'articles pour mon site,
Pour faire un lien dans leur article vers un logiciel référencé dans la base de donnée, les visiteurs sont invités à utiliser la synthaxe [log]id du logiciel[/log] :
chaine qui devra être remplacée par le nom du logiciel, avec un lien pointant vers une certaine adresse.
Ainsi, un simple preg replace ne suffit pas.
j'avais ainsi pensé vaguement à un preg replace suivit d'un eval, sans grande surprise cela ne marche pas :
Citation :
$contenu = htmlentities($donnees['contenu']);
$contenu = preg_replace("!\[log\](.+)\[/log\]!Ui","\".logiciel($1).\"",$contenu);
eval("\$contenu = $contenu;" );
|
avec pour fonction logiciel :
Citation :
function logiciel($idlogiciel)
{
$reponse = mysql_query("SELECT * FROM logiciels WHERE idlogiciel='$idlogiciel'" );
while ( $donnees = mysql_fetch_array($reponse) )
{
$lien = "<a href=\"article-$idarticle-$idlogiciel.html\">".$donnees['nom']."</a>";
}
return($lien);
}
|
Comment appliquer cette fonction ?
Merci