Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4941 connectés 

 


Dernière réponse
Sujet : [PHP Hard] Fonction définition : l'ameliorer...
Thekeke2 C'est compliqué je vous previens :) !
 
Bon j'ai une fonction qui teste les mots d'un texte et affiche (si le mot est présent dans la BDD evidemment) une popup "overlib" (pour ceux qui ne connaissent pas www.bosrup.com) avec la definition et une image associée...
 
Mon problème : je voudrais qu'en fait la fonction teste chaque mot du texte sous ses deux formes (au singulier et au pluriel).  
 
Comme le pluriel n'est pas forcement l'ajout d'un "s" j'ai mis dans ma table tous les mots au singulier et au pluriel mais je ne sais pas comme faire tester a cette fontion les deux types de mots... Pouvez vous m'aider ? Je patauge ! (nb : jusque là j'ai reussi a adapter cette fonction à mes besoins mais là je rame)
 
 
LA FONCTION :
 
<%
function lienversglossaire($ligne)
{
 
 //connection à la base
 include ("../../connection/connection.php" );
 
 //on sélectionne les mots du glossaire
 $query = "select mot, definition, photodef from definitions";
 $mysql_result = mysql_query($query);
 
 //on les met dans un tableau
 $indice=0;
 while($row = mysql_fetch_row($mysql_result))
 {
  $glossaire[$indice]=$row[0];
  $idglossaire[$indice]=$row[1];
  $idphotoglossaire[$indice]=$row[2];
  $indice++;
 }
 $c=0;
 
 //on remplace chaque mot par un lien
 while($c<$indice)
 {
  $ligne=liensurmot($ligne, $glossaire[$c], $idglossaire[$c], $idphotoglossaire[$c]);
  $c++;
 }
 return $ligne;
}
 
function liensurmot($ligne, $mot, $idmot, $photomot)
{
 if ($mot<>"" ) {
  $direction = "<a style=\"color: #000066; font-family: Arial; font-size: 10 pt; text-decoration: underline\"  href=\"javascript:void(0);\" onmouseover=\"return overlib('<IMG SRC=\'../../images/glossaire/$photomot\'  align=\'left\'> $idmot', CAPTION, 'Définition de : $mot');\" onmouseout=\"return nd();\">";
  $ligne = preg_replace("/([>\' (])($mot)([<, \.)])/i", "\\1$direction\\2</a>\\3", $ligne);;
 }
 return $ligne;
}
%>

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Thekeke2 C'est compliqué je vous previens :) !
 
Bon j'ai une fonction qui teste les mots d'un texte et affiche (si le mot est présent dans la BDD evidemment) une popup "overlib" (pour ceux qui ne connaissent pas www.bosrup.com) avec la definition et une image associée...
 
Mon problème : je voudrais qu'en fait la fonction teste chaque mot du texte sous ses deux formes (au singulier et au pluriel).  
 
Comme le pluriel n'est pas forcement l'ajout d'un "s" j'ai mis dans ma table tous les mots au singulier et au pluriel mais je ne sais pas comme faire tester a cette fontion les deux types de mots... Pouvez vous m'aider ? Je patauge ! (nb : jusque là j'ai reussi a adapter cette fonction à mes besoins mais là je rame)
 
 
LA FONCTION :
 
<%
function lienversglossaire($ligne)
{
 
 //connection à la base
 include ("../../connection/connection.php" );
 
 //on sélectionne les mots du glossaire
 $query = "select mot, definition, photodef from definitions";
 $mysql_result = mysql_query($query);
 
 //on les met dans un tableau
 $indice=0;
 while($row = mysql_fetch_row($mysql_result))
 {
  $glossaire[$indice]=$row[0];
  $idglossaire[$indice]=$row[1];
  $idphotoglossaire[$indice]=$row[2];
  $indice++;
 }
 $c=0;
 
 //on remplace chaque mot par un lien
 while($c<$indice)
 {
  $ligne=liensurmot($ligne, $glossaire[$c], $idglossaire[$c], $idphotoglossaire[$c]);
  $c++;
 }
 return $ligne;
}
 
function liensurmot($ligne, $mot, $idmot, $photomot)
{
 if ($mot<>"" ) {
  $direction = "<a style=\"color: #000066; font-family: Arial; font-size: 10 pt; text-decoration: underline\"  href=\"javascript:void(0);\" onmouseover=\"return overlib('<IMG SRC=\'../../images/glossaire/$photomot\'  align=\'left\'> $idmot', CAPTION, 'Définition de : $mot');\" onmouseout=\"return nd();\">";
  $ligne = preg_replace("/([>\' (])($mot)([<, \.)])/i", "\\1$direction\\2</a>\\3", $ligne);;
 }
 return $ligne;
}
%>

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)