IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Recherche d'une sous-chaîne complète dans une chaîne de caractères


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 37
    Par défaut Recherche d'une sous-chaîne complète dans une chaîne de caractères
    Bonjour à tous,
    j'aimerais tester si une sous-chaîne complète existe dans une chaîne de caractères.
    Je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (eregi("main",$phrase)){echo $phrase;}
    Il m'affiche la phrase qui contient "main" même si c'est dans un mot comme "demain".
    Pourtant je voudrais n'avoir que la phrase qui a le mot "main" et qu'il ne m'affiche pas la phrase qui a "main" comme une partie de "demain".
    Comment est-ce que je dois faire pour n'avoir que la phrase contenant le mot "main"?
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Hello

    Une regexp dans ce cas est totalement inutile: utilise strpos qui va 400x plus vite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $str = "une chaine de caracteres";
    if (strpos(' ' . $str, ' chaine') !== false)
     ...

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 37
    Par défaut
    Merci pour ta réponse Benjamin Delespierre.
    Mais ça ne marche toujours pas. Dès qu'il trouve la sous chaîne, il m'affiche la phrase même si la sous-chaîne est une partie d'un mot. Alors que j'aimerais qu'il ne m'affiche la phrase que lorsque le mot (pas la partie d'un mot) est identique à la sous-chaîne recherchée.
    Je ne sais pas comment faire pour y arriver
    Merci d'avance.

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Mets un espace devant le mot recherché comme spécifié dans l'exemple tout simplement.

    -- Edit

    Comme un idiot j'avais pas vu venir le coup des suffixes.
    Qu'a cela ne tienne, voici une solution fonctionnelle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $str = "Une, chaine: de, caracteres. La suite;";
    $pieces = preg_split('~([[:punct:]]|[[:blank:]])~', $str);
    if (in_array('chaine', $pieces))
      echo "Trouvé !";

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 37
    Par défaut
    Merci encore Benjamin Delespierre.
    Ça marche parfaitement.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est a faire avec la limite de mot \b

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $str = "Une, chaine: de, caracteres. La suite;";
    if(preg_match('/\bchaine\b/', $str))
    echo 'Trouvé !';

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. Réponses: 1
    Dernier message: 26/02/2009, 18h13
  3. Recherche d'une valeur présent dans une table mais pas dans une autre
    Par bossLINDROS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2008, 15h12
  4. Réponses: 13
    Dernier message: 27/08/2007, 12h16
  5. Recherche de valeur dans une feuille et affichage dans une autre
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2007, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo