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 :

preg_match_all avec condition


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut preg_match_all avec condition
    Bonjour,

    Je lis un fichier d'erreurs avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Enregistrement 1 : erreur ......
    Enregistrement 6 : erreur ......
    ORA. 1426 .........
    Enregistrement 2 : .......
     
    .....
    J'ai fait une preg_match_all pour récupérer les "Enregistrement" mais comment faire, pour récupérer le message qui tiens sur deux lignes quand cela n'est pas systèmatique, comme pour la ligne ORA, qui est une conséquence de l'erreur 6 ?
    Dans une même instruction ?

    Olivier

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu pourrais chercher tout ce qu'il y a entre deux "Enregistrement" ou la fin du fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut oui effectivement
    Bonjour,

    J'y ai pensé mais j'ai oublié de dire que pour le dernier "Enregistrement " j'ai encore du texte, qui ne se termine pas par enregistrement. Je vais peut être essayé.

    j'avais utilisé /Enregistrement(.*)/ mais je ne récupère pas la deuxième ligne ?

    olivier

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php 
    $str= <<<LOD
    Enregistrement 1 : erreur ......
    Enregistrement 6 : erreur Truc......
    ORA. 1426 .........
    Enregistrement 2 : .......
    Machin chose Bidule 
    .....
    LOD;
    $pattern = '`Enregistrement \d+ : (.*)(?:\n(?=Enregistrement\b|$)|$)`Us';
    preg_match_all($pattern, $str,$matches);
    $result = array_pop($matches);
    ?>
    Donc, comme dit précédemment, on récupère tout ce qui se trouve entre "Enregistrement n : " (en décrivant bien les espaces) et le prochain saut de ligne suivi du mot "Enregistrement" ou de la fin de chaîne (qui peut intervenir avant le saut de ligne).

    Voilà.

  5. #5
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut bonjour et merci
    Bonjour,

    Je vais essayer en rentrant au boulot

    merci

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/06/2004, 14h51
  2. Sélection multi table avec condition
    Par iuz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/05/2004, 15h04
  3. ALTER VIEW avec condition
    Par yan77 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2004, 17h22
  4. Index avec conditions
    Par marhnix dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/03/2004, 10h48
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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