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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a href='http://www.voile.com'>
et que "voile" est un mot présent dans le lexique, ca me le transforme en:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<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 !