Aller au contenu

rechercher un bout de chaine


Sujets conseillés

Posté

Bonjour, :rolleyes:

Je bloque sur un truc qui doit être tout bête.

Je voudrai déterminer si un texte contient un morceau de chaine, c'est à dire si "Un message sur les forums" contient bien le morceau "%forum%"

J'ai essayé ceci:

$message = "Un message sur les forums"
$mots = array("forum",
"texte",
"etc");
if (in_array($message, $mots))
{
fait ceci
}
else
{
fait cela
}

mais ce script ne marche que si le message est "forum"...

et rien ne se passe non plus avec

if (strpos($message, $mots))

qu'est-ce qu'il faut mettre pour trouver un bout de chaîne ?

Posté

Je vais essayer avec des

if ((ereg("forum",$message)) or (ereg("texte",$message)))

...

Posté

Ca marche, j'aurai bien aimé pouvoir me servir d'un tableau, mais bon ça marche comme ça.

C'est rien... j'étais juste de passage...

Bonne journée à tous :rolleyes:

Posté (modifié)

Il suffit de faire une boucle (foreach) pour que ca fonctionne avec un tableau :D

Modifié par Nanane
Posté

if (eregi("forum|texte",$message))

Non sensible à la casse, c'est mieux :)

Posté

stripos() pour ne pas etre sensible a la casse. ca marche aussi ^^

Posté

Merci à vous.

En fait j'ai fais comme ça:

((ereg(" forum",$message)) and (ereg("forum ",$message)) or (ereg(" forum$",$message)) or (ereg("^forum ",$message)) or (ereg("^forum$ ",$message)))

je peux pas trop mettre dans un tableau finalement puiqu'il doit chercher certain mots entiers, d'autres non.

Avec ereg ça marche nickel apparemment, il me trouve bien tous les messages de type: "un forum", "forum", "forum du site", "un forum de site" c'est exactement ce que je cherchais. :rolleyes:

Posté

preg_match et ereg sont déconseillées pour faire de la recherche simple, car gourmands (comme toujours avec les regex)

stristr ou strpos, avec une boucle, suffisent largement.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...