Page 1 sur 2

Recherche de mot clé dans une phrase

Posté : 10 août 2010, 23:52
par labyelo
Bonsoir,
j'aimerais savoir, comment faire pour rechercher des mots clés dans une phrase?
Ensuite, j'aimerais savoir comment faire pour l'intégrer..

|| Si l'un des mots suivant est dans la phrase, on affiche le mot trouvé, sinon on affiche la phrase. ||

Merci d'avance,
Anthony

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 12:49
par ouckileou
Regarde la liste des fonctions de manipulation de chaînes, tu devrais en trouver une simple pour chercher le nombre d'occurence d'une sous-chaîne dans une chaîne: http://fr.php.net/manual/fr/ref.strings.php

Si c'est trop simpliste, tu pourras te tourner vers les expressions régulières et les fonctions associées. Regarde le forum et la FAQ, sujet déjà traité.

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 15:09
par dunbar
Mauvaise réponse :oops:

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 15:11
par stealth35
si il cherche "jour" ca marchera alors que le mot n'est pas dans la phrase :wink:

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 15:14
par dunbar
A le boulet :P
effectivement #-o

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 15:19
par stealth35
je dirais plus un truc du genre
$sent = "aujourd'hui ma super phrase";
$word = array('super', 'phrase');
	
$found = array_intersect($word, str_word_count($sent, 1));
	
if($found)
{
    echo implode(', ', $found);
}
else
{
    echo $sent;
}
EDIT : marche pas en utf-8...

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 15:23
par dunbar
Ou ceci peut-être :wink:

MAJ
$phrase = 'Bonjour Anthony';
$mot    = 'Anthony';

if (preg_match("/\b".$mot."\b/i", $phrase))
 {
    echo  "Le mot $mot a été trouvée dans la phrase <b>$phrase</b>";
 }
 else
 {
    echo  "Le mot $mot ne se trouve pas dans la phrase <b>$phrase</b>";
 }
Le Le i indique que la recherche ne sera pas sensible à la casse.

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 15:25
par stealth35
non c'est pareil, il faut mettre une limite de mot dans ce cas: \b
mais bon c'est pas simple de définir un mots : aujourd'hui est un mot mais l'ami n'en est pas un

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 17:19
par labyelo
Merci à tous, je vais tester ça et je vous dis quoi! =)

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 17:32
par labyelo
Petit problème :oops:
j'aimerais par exemple, si le membre à écrit dans son titre : "<D" se transforme en jteplin ou bien encore "vv" en shark
$phrase = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : ''; 
$mot = array('vv', 'lol');

    if (preg_match("/\b".$mot."\b/i", $phrase))
     {
        $mood = $mot;
     }
     else
     {
        $mood = $postrow[$i]['mood'];
     }
merci d'avance,
Anthony

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 17:33
par stealth35
le code de dunbar n'est pas bon

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 17:36
par dunbar
le code de dunbar n'est pas bon
Pourquoi ceci ne serais t'il pas bon :?:
$phrase = 'Bonjour Anthony';
$mot    = 'Antho';

if (preg_match("/\b".$mot."\b/i", $phrase))
 {
    echo  "Le mot $mot a été trouvée dans la phrase <b>$phrase</b>";
 }
 else
 {
    echo  "Le mot $mot ne se trouve pas dans la phrase <b>$phrase</b>";
 }

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 17:44
par stealth35
celle la oui mais il avais repirs avec le :
$mot = array('vv', 'lol');
ducoup ca ne marchera pas ca donnera

\bArray\b


mais avec juste

$mot = 'Antho';

ca roule :wink:

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 17:52
par labyelo
je dirais plus un truc du genre
$sent = "aujourd'hui ma super phrase";
$word = array('super', 'phrase');
	
$found = array_intersect($word, str_word_count($sent, 1));
	
if($found)
{
    echo implode(', ', $found);
}
else
{
    echo $sent;
}
EDIT : marche pas en utf-8...
Je vais donc reprendre ce code alors =) :wink:

Re: Recherche de mot clé dans une phrase

Posté : 11 août 2010, 17:59
par labyelo
Voilà,
donc maintenant, j'aimerais bien savoir, comment faire pour que les mots de l'array se transforme en autre mot ?!
Exemple :
lol = mdr
vv = shark
<D = jteplin
:( = cry
:) = happy

ect
   $sent = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : '';
      $word = array('lol', 'vv');

      $found = array_intersect($word, str_word_count($sent, 1));

      if($found)
      {
          $mood = implode(', ', $found);
      }
      else
      {
          $mood = $postrow[$i]['mood'];
      }
Merci d'avance,
Anthony