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

Langage PHP Discussion :

Recherche multiple répétée


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut Recherche multiple répétée
    Bonjour,

    Afin d'illustrer au mieux ma demande voilà un exemple.

    J'ai ce type de structure par exemple :

    DESCRIPTION:
    d1
    SOLUTION:
    s1
    CONCLUSION:
    c1

    DESCRIPTION:
    d2
    SOLUTION:
    s2
    CONCLUSION:
    c2

    DESCRIPTION:
    d3
    SOLUTION:
    s3
    CONCLUSION:
    c3
    Et bien j'aimerai récupérer d1, d2 et d3... si possible pas dans la même variable, ou alors dans un tableau ça serait aussi simple. Du fait que je puisse traiter d1, d2 et d3 séparément (et pas ces 3 données à la suite).

    Je pense qu'il faut utiliser un preg_match ou unpreg_match_all ? Oui mais je n'arrive que si la structure (DESCRIPTION,SOLUTION...est présente une seule fois).

    merci

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Et ta structure elle est dans quoi db, fichier, tableau ?

  3. #3
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Je sais, , c la suite de ton post, il y a 1 semaine ou 2, ta structure provient des mails .... le résultat dans une variable, non ?

    Sinon, si tu y arrives sur un bloc avec preg_match, pour tous les blocs tu utilises preg_match_all comme tu le dis

    Montres nous tu code actuel ?

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Ma structure est dans un e-mail.

    Mais cela ne change pas grand chose car j'ai tout mon texte dans une variable $text.

    Actuellement j'essai comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("/DESCRIPTION(.*)SOLUTION/s", $text, $result);
    Et avec ça il me prend d1 (inlcu) jusquà d3 (inclu). Il s'arrète donc sur le dernier 'SOLUTION'

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    preg_match_all mais sans le 's' dans le pattern ...

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match_all("/DESCRIPTION(.*)SOLUTION", $f, $matches);
    il n'accepte pas le pattern :

    No ending delimiter '/' found in

  7. #7
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Enléves le 's' pas le '/s' car comme te dis l'erreur manque le / à la fin de ta regexp ...

    Sinon, tu devrais lire le tuto sur les regexp sur ce même site:
    http://g-rossolini.developpez.com/tutoriels/php/regex/

  8. #8
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Au temps pour moi

    donc pour afficher matches :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($matches as $val) {
        echo $val[0] ;
    }
    Il n'affiche rien avec ça :

    Ce qui veut donc dire qu'il ne récupère rien.

  9. #9
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Ce n'est pas $val[0] mais $val mais ya qd même un pb puisque $matches ne devrait pas être vide ...

    C quoi ton preg_match_all, donnes nous du code !

  10. #10
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    et bien ça n'a pas changé ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all("/DESCRIPTION(.*)SOLUTION/", $text, $matches);

  11. #11
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Non, je disais ça parceque un coup c $text puis $f puis $texte et aussi $result puis $matches etc ... c'est pour celà que je voulais savoir si tes variables correspondaient bien

    Sinon, pour le preg_match_all vu avec les éléments que je vois, j'ai rien d'autre à dire , je cherche ...

  12. #12
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Oui si une fois c'est $text une autre fois $f c'est que j'oublie de changer, mais no il n'y a pas de problème la dessus...

  13. #13
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    pour info, cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all("/DESCRIPTION(.*)SOLUTION/", $text, $matches);
    puis :

    me renvoit :

    Array ( [0] => Array ( ) [1] => Array ( ) )

  14. #14
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Et tu as deux blocs ?

    Sinon echo $matches[0][1] devrait contenir d1

  15. #15
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    non

    me renvoit :

    Undefined offset: 1 in

  16. #16
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Sorry, [0][0]

    Donc $matches[0][0]

    ET SINON TU AS BIEN DEUX BLOCS DANS TON $text

  17. #17
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    j'avais déjà testé et pareil :

    Undefined offset: 0 in
    Oui je travail pour tester sur ceci :

    DESCRIPTION d1 SOLUTION s1 CONCLUSION c1 DESCRIPTION d2 SOLUTION s2 CONCLUSION c2 DESCRIPTION d3 SOLUTION s3 CONCLUSION c3

  18. #18
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    j'avais déjà testé et pareil :

    Undefined offset: 0 in
    Oui je travail sur ceci pour tester :

    DESCRIPTION d1 SOLUTION s1 CONCLUSION c1 DESCRIPTION d2 SOLUTION s2 CONCLUSION c2 DESCRIPTION d3 SOLUTION s3 CONCLUSION c3

  19. #19
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Juste comme ça, à tout hasard.

    Est ce qu'on peu considérer que DESCRIPTION: (et les autres) sont des séparateurs 100% fiables ?

    Ensuite, est ce qu'il y a un risque que cette chaine contienne ce caractère : | (une barre)

    Si les 2 conditions sont réunis, on peu séparer chaque partie de manière simple à mon sens.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $text = str_replace('DESCRIPTION:', '|', $text);
    $descriptions = explode('|', $text);
    Un print_r renvoie :
    Array
    (
    [0] =>
    [1] =>
    d1
    SOLUTION:
    s1
    CONCLUSION:
    c1


    [2] =>
    d2
    SOLUTION:
    s2
    CONCLUSION:
    c2


    [3] =>
    d3
    SOLUTION:
    s3
    CONCLUSION:
    c3
    )
    On obtient ici, et selon ta chaine en exemple 3 parties, les 3 blocs correspondant aux 3 DESCRIPTION:

    Reste plus qu'à parcourir le tableau pour récupérer les données respectives.

  20. #20
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour @RunCodePhp,

    Oui mais bon cette solution c quelque chose que nous avions vu, il ya deux trois semaines et en conclusion l'utilisation de Regexp est qd même mieux ...

    Dans les mails, tu ne sauras jamais si oui ou non, il existera pas un jour le caractère '|' et là tout deviendra faux

    C pas normal que cette regexp simple ne marche pas (même si j'ai pas bq d'expérience là dessus) et puis pourquoi 2 tableaux dans le résultat ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. recherche multiple par boucle
    Par magicfrom dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 26/05/2008, 11h26
  2. plugin Ferret avec recherche multiple
    Par san1981 dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 14/05/2008, 22h52
  3. [SQL] Recherche multiple Régions
    Par dcheira dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/10/2007, 15h23
  4. [condition de lancement] recherche multiple de fichier
    Par ZaaN dans le forum Visual C++
    Réponses: 1
    Dernier message: 30/04/2007, 16h15
  5. Réponses: 8
    Dernier message: 20/09/2006, 15h09

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