Recherche de mot clé dans une phrase

Eléphant du PHP | 55 Messages

10 août 2010, 23:52

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
8-)
http://lilou141203.labrute.com : merci de vous battre contre ma p'tite brute! :P

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 août 2010, 12:49

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é.

ViPHP
ViPHP | 2291 Messages

11 août 2010, 15:09

Mauvaise réponse :oops:
Modifié en dernier par dunbar le 11 août 2010, 15:14, modifié 1 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

11 août 2010, 15:11

si il cherche "jour" ca marchera alors que le mot n'est pas dans la phrase :wink:

ViPHP
ViPHP | 2291 Messages

11 août 2010, 15:14

A le boulet :P
effectivement #-o
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

11 août 2010, 15:19

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...
Modifié en dernier par stealth35 le 11 août 2010, 15:28, modifié 1 fois.

ViPHP
ViPHP | 2291 Messages

11 août 2010, 15:23

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.
Modifié en dernier par dunbar le 11 août 2010, 15:36, modifié 1 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

11 août 2010, 15:25

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

Eléphant du PHP | 55 Messages

11 août 2010, 17:19

Merci à tous, je vais tester ça et je vous dis quoi! =)
8-)
http://lilou141203.labrute.com : merci de vous battre contre ma p'tite brute! :P

Eléphant du PHP | 55 Messages

11 août 2010, 17:32

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
8-)
http://lilou141203.labrute.com : merci de vous battre contre ma p'tite brute! :P

ViPHP
ViPHP | 5462 Messages

11 août 2010, 17:33

le code de dunbar n'est pas bon

ViPHP
ViPHP | 2291 Messages

11 août 2010, 17:36

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>";
 }
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

11 août 2010, 17:44

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:

Eléphant du PHP | 55 Messages

11 août 2010, 17:52

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:
8-)
http://lilou141203.labrute.com : merci de vous battre contre ma p'tite brute! :P

Eléphant du PHP | 55 Messages

11 août 2010, 17:59

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
8-)
http://lilou141203.labrute.com : merci de vous battre contre ma p'tite brute! :P