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 :

Reg expr avec PHP [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Par défaut Reg expr avec PHP
    Bonjour,

    Je bloque sur une regexpr en PHP...

    J'ai une chaine de caractère qui contient uns liste de nom de schema, table, valeur et je souhaite récupérer la valeur pour un nom de schéma et table donnés.
    Ex : USER1.TABLE1:MAIN USER2.TABLE2:TOTO USER3.TABLE3:TITI USER10.TABLE10:MAIN

    Je souhaire connaitre la valeur après les : pour USER2.TABLE2, soit TOTO

    J'ai essayé avec preg_match_all, mais sans succès...

    Si queslqu'un pouvait me donner un coup de main ce serait super sympa.

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Billets dans le blog
    1
    Par défaut
    De ce que je vois, il te suffit de récupérer ce qui est entre "USER2.TABLE2:" et l'espace, en mode ungreedy.

    Mmm quels tests as-tu fais ? Montres nous ton code qu'on puisse t'aider
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  3. #3
    Membre confirmé
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Par défaut
    Merci pour ta réponse.

    J'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $data = file_get_contents($repair_file);
    $str = 'USER2.TABLE2';
    $reg = '.*?('.$str.')((?:[a-z][a-z]+)).*?';
    preg_match_all ("/".$reg."/is", $data, $matches);
    echo $matches[1][0]
    Ca ne ramène rien, je suis pas très doué avec les regexpr, vu que j'en utilise très rarement, j'oubli tout chaque fois...

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Billets dans le blog
    1
    Par défaut
    Tu t'es surtout bien compliqué la vie (à mon sens) !
    Essaies avec cette regexp ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reg = '/'.$str.'\:(.*) /Uis';
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  5. #5
    Membre confirmé
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Par défaut
    Merci pour ta réponse. Mais ça ne ramène rien...

  6. #6
    Membre confirmé
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Par défaut
    En fait l'espace qu'il y a entre chaque bloc est un saut de ligne, car je charge dans $data les chaines de caractère dans lesquelles je cherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = file_get_contents($repair_file);
    C'est peut être là l'origine du problème ?

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Oui... ça a son importance !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reg = '/'.$str.'\:([\B]*)/Uis';
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre confirmé
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Par défaut
    Bon toujours rien, c'est la misère...

    Pour revenir à mon exemple du début, les noms sont stockés dans un fichier donc sous cette forme :
    USER1.TABLE1:MAIN
    USER2.TABLE2:TOTO
    USER3.TABLE3:TITI
    USER10.TABLE10:MAIN

    et donc je stocke le tout dans une chaine de caractère (avec file_get_contents() et je cherche la valeur après les : pour USER2.TABLE2 par exemple.

    J'utilise des regexpr car le fichier est assez gros et est suceptible d'être appelé un nombre de fois important

  9. #9
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Billets dans le blog
    1
    Par défaut
    Tentes de cette manière ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reg = '/'.$str.'\:(.*)[\s]/Uis';
    preg_match_all($reg, $data, $matches);
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  10. #10
    Membre confirmé
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Par défaut
    Super ça marche ! merci

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

Discussions similaires

  1. Connexion à Firebird avec PHP
    Par genova dans le forum Connexion aux bases de données
    Réponses: 7
    Dernier message: 12/09/2006, 18h48
  2. Travailler avec PHP / Apache / MySQL
    Par R3iTt0R dans le forum Linux
    Réponses: 22
    Dernier message: 24/06/2004, 12h03
  3. [débutant] choix de postgre avec php / migration
    Par bilbon.S dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/03/2004, 15h05
  4. Création d'utilisateur sous PostgreSQL 7.3.2 avec PHP
    Par duongkhang dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 06/06/2003, 14h10

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