yankey Posté 14 Juin 2007 Posté 14 Juin 2007 Bonjour, 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 ?
yankey Posté 14 Juin 2007 Auteur Posté 14 Juin 2007 Je vais essayer avec des if ((ereg("forum",$message)) or (ereg("texte",$message))) ...
Portekoi Posté 14 Juin 2007 Posté 14 Juin 2007 Essaie avec strpos() : http://www.manuelphp.com/php/function.strpos.php
yankey Posté 14 Juin 2007 Auteur Posté 14 Juin 2007 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
Nanane Posté 14 Juin 2007 Posté 14 Juin 2007 (modifié) Il suffit de faire une boucle (foreach) pour que ca fonctionne avec un tableau Modifié 14 Juin 2007 par Nanane
smile Posté 14 Juin 2007 Posté 14 Juin 2007 if (eregi("forum|texte",$message)) Non sensible à la casse, c'est mieux
Nanane Posté 14 Juin 2007 Posté 14 Juin 2007 stripos() pour ne pas etre sensible a la casse. ca marche aussi
yankey Posté 14 Juin 2007 Auteur Posté 14 Juin 2007 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.
brian85 Posté 15 Juin 2007 Posté 15 Juin 2007 Apparemment preg_match() est plus performant selon la doc php
Galeenet Posté 19 Juin 2007 Posté 19 Juin 2007 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant