Expression régulière

redsungraphics Messages postés 9 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 27 septembre 2007 - 22 juin 2004 à 00:53
redsungraphics Messages postés 9 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 27 septembre 2007 - 22 juin 2004 à 00:58
voilà une portion de code qui permet de transformer un mot en lien dans une page s'il est reconnu dans la db. il fonctionee. or il y a un souci. s'il y a le mot maudire par exemple et que dire est encodé, il fait un lien avec dire et laisse mau tout seul. il faudrait que mon code reconnaisse soit le mot dans son entièreté soit fasse un lien avec tt le mot. voici la portion de code:

<?
include('connections/dfs.php');

$IDpoeme = $_GET['IDpoeme'];
$poesie = mysql_query("SELECT * FROM poesie WHERE ID=$IDpoeme");
if($lignepoesie = mysql_fetch_array($poesie))
{
//Je récupère le texte que je mets dans la variable $mod
$mod = "".$lignepoesie["content"]."

";

//Je sélectionne les mots de la table lexique
$motscle = mysql_query("SELECT * FROM lexique");

//tant qu'il y a des mots dans la table lexique
while($lignemot = mysql_fetch_array($motscle))
{
//Je récupère la valeur lexicale du mot
$cl = $lignemot["valeur_lex"];
//Je crée un tableau
$tab_poemes = Array();
//Au début, mon indice est de 0
$indice = 0;
//Je sélectionne les textes dont le champ lexique est la valeur lexicale du mot$poemes_corresp mysql_query("SELECT * FROM poesie WHERE lexique $cl");
//Tant qu'il y a des textes correspondant à la valeur lexicale du mot
while($ligne_poemes_corresp = mysql_fetch_array($poemes_corresp))
{
//J'ajoute une occurence à mon tableau
$tab_poemes[$indice] = $ligne_poemes_corresp["ID"];
//J'incrémente mon indice pour la prochaine occurence
$indice++;
}

//finalement, je remplace le mot recherché par le mot sous forme de lien dans le texte
if($indice>0)
{
//Création d'un indice aléatoire allant de 0 à $indice-1 (indice est = au nombre d'occurences + 1 car il a été incrémenté une fois en trop
$indice_aleatoire = rand(0, $indice-1);
//Mon id aléatoire est donc l'occurence reprenant les id de poème à l'indice aléatoire
$id_aleatoire = $tab_poemes[$indice_aleatoire];

$mod = str_replace($lignemot["mot"], "".$lignemot["mot"]."", $mod);
}
}
//Affichage du texte modifié
}
?>

ce travail étant mon travail de fin d'études, je vous serais très reconnaissant de m'aider.
merci d'avance.
stef

1 réponse

redsungraphics Messages postés 9 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 27 septembre 2007
22 juin 2004 à 00:58
l'idéal serait en effet qu'il reconnaisse une portion de mot dans la table et qu'il fasse le lien avec tt le mot sur la page affichée!
0