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 :

Capturer une chaîne en dehors de parenthèses


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    CEO
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : CEO

    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut Capturer une chaîne en dehors de parenthèses
    Bonjour,

    je recherche le moyen de capturer un morceau de chaine qui ne soit pas entre '' ou entre ()

    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM table WHERE ID IN (SELECT * FROM Table)
    ici je veux capturer le FROM qui n'est pas entre ()
    doc je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $query = "SELECT * FROM table WHERE ID IN (SELECT * FROM Table)";
    preg_match("/LIMIT(.*)/msi", $query, $match);

    Merci de votre aide

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Salut,

    Peut-être avec preg_split

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $r = preg_split('#\(.*\)#msi', $query, -1, PREG_SPLIT_NO_EMPTY);
    print_r($r);

  3. #3
    Membre confirmé
    Profil pro
    CEO
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : CEO

    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut
    Merci pour ta réponse,
    en fait je doit capturer le texte premier SELECT jusqu'au FROM sans parenthèses mais en gardant le contenu entre parenthèse

    par exemple:

    le regex doit me retourner *

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql= 'SELECT * FROM table WHERE ID IN (SELECT * FROM Table)';
    Merci

  4. #4
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Dans ce cas, oui alors, preg_match est suffisant.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql= 'SELECT champ1, champ2, champ3 FROM table WHERE ID IN (SELECT * FROM Table)';
    preg_match('#SELECT (.+) FROM .+#Usi', $sql, $match);
    echo $match[1];

    Il ne te retournera que la 1ère occurence trouvée, et comme le 1er SELECT n'est jamais entre parenthèse, un masque simple est suffisant.

  5. #5
    Membre confirmé
    Profil pro
    CEO
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : CEO

    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut
    merci de la réponse mais il y a une autre fom de string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql= 'SELECT * FROM table WHERE ID IN (SELECT * FROM Table)';
     
    ou bien 
     
    $sql= 'SELECT 
    *, 
    (select * from matable) AS test 
    FROM table WHERE ID IN (SELECT * FROM Table)';
    le select et le form ne doivent pas être entre parenthèses en fait

    Merci de ton aide

  6. #6
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    J'arrive pas à comprendre ton histoire de parenthèses de from etc. En gros tu veux capturer quoi ? La liste des colonnes de ta requete ? Les noms des colonnes (alias plutot que (select ...)) ?

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 02h08
  2. [MySQL] Affichage d’une chaîne de caractères contenant des parenthèses
    Par mathiotp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/11/2007, 21h31
  3. Inverser une chaîne de caractères
    Par DBBB dans le forum Assembleur
    Réponses: 2
    Dernier message: 30/03/2003, 12h09
  4. Comptage de mots dans une chaîne
    Par kikinou dans le forum Pascal
    Réponses: 10
    Dernier message: 01/01/2003, 03h27
  5. Réponses: 3
    Dernier message: 09/05/2002, 02h39

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