Bonjour à tous,
Je viens de faire un site pour un client.
Ce site contient plein de news, d'articles et un lexique.
Ce lexique contient les définitions de plusieurs mots (domaine de la voile).
J'ai donc une table lexique contenant les mots et leurs définitions.
Le but du lexique est de faire un lien sur chaque mot d'un article présent dans le lexique vers la page explicative
Dans l'exemple ci dessous, $RowSQLArt['art_texte'] contient le texte de mes articles, voici comment je fait pour faire mes liens:
1 2 3 4 5 6 7
| $sql = "SELECT * FROM lexique";
$SQL = mysql_query($sql) or die(mysql_error());
$RowSQL = mysql_fetch_assoc($SQL);
do {
$RowSQLArt['art_texte'] = preg_replace("!(".$RowSQL['lex_id'].")!i", "<a class='lexique' href='/lexique-de-la-voile.html#".$RowSQL['lex_id']."' title='".htmlentities($RowSQL['lex_des'])."'>$1</a>", $RowSQLArt['art_texte']);
} while ($RowSQL = mysql_fetch_assoc($SQL)); |
Seulement les articles contiennent du HTML (liens, etc...).
Donc si un article contient un lien
<a href='http://www.voile.com'>
et que "voile" est un mot présent dans le lexique, ca me le transforme en:
<a href='http://www.<a class='lexique' href='/lexique-de-la-voile.html#voile' title='blabla'>voile</a>.com'>
C'est pas beau à voir
...
Quelqu'un à une idée de fonctionnement qui corrigerais le problème ?
Merci !
Partager