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 :

Récupération des résultats de preg_match


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Récupération des résultats de preg_match
    Salut à tous,

    Je souhaites parcourir un fichier, s'il existe dans ce cas la je vérifie si telle chaîne de caractère y est présente, si oui je veux afficher ce qu'il y a après cette chaîne, jusqu'à arriver à une autre chaîne de caractère.
    Le problème étant que j'ai des exceptions, la chaîne est bien présente mais ne se termine pas toujours par la même chaîne de caractère. Or je ne sais pas comment inclure un ou dans ma fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $fichier = 'C:\\Desktop\repip\blablabla.html'; 
        if ( (file_exists($fichier)) && (is_readable($fichier)) ){ 
            $text = file_get_contents($fichier);
            $chainerecherchee = "AAA:";
            if (strstr($text, $chainerecherchee)){
                preg_match( '#AAA:(.*);BBB#', $text, $match);
                echo $match[1];
            }
            else{
                if (strstr($text, $chainerecherchee)){
                    preg_match( '#AAA:(.*)CCC#', $text, $match);
                    echo $match[1];
                }
                else{
                }
            }
        }
        else 
        { 
        }
    J'ai donc essayé d'inclure un if dans un if pour si le premier cas (ce termine par BBB) est faux je rentre dans le deuxième if pour vérifier si ça se termine par CCC.

    Lorsque j'arrive au cas ou ça se termine par BBB, aucun souci.
    Lorsque j'arrive au cas ou ça se termine par CCC j'ai une erreur du type :

    Notice: Undefined offset: 1 in C:\\Desktop\repip\blablabla.php on line 7
    Si quelqu'un pouvait m'aider

    Merci.
    Dernière modification par Invité ; 17/04/2015 à 16h21.

  2. #2
    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
    Déjà, même si ce n'est pas formellement interdit, tu devrais éviter de mettre des accents dans tes noms de variables...

    Ensuite, où sont les délimiteurs dans ton expression ?
    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

  3. #3
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Billets dans le blog
    1
    Par défaut
    Et si tu ne mets rien dans tes else tu n'est pas obligé de juste mettre:


    Plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (strstr($text, $chainerecherchée)){
                preg_match( '#AAA:(.*);#BBB', $text, $match);
                echo $match[1];
            }
            else{
                if (strstr($text, $chainerecherchée)){
                    preg_match( '#AAA:(.*)CCC#U', $text, $match);
                    echo $match[1];
                }
           }
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  4. #4
    Invité
    Invité(e)
    Par défaut
    Déjà merci de vos réponses rapides

    Bovino :

    Les accents dans les noms de variables c'était juste pour l'exemple, désolé.
    Les délimiteurs sont AAA et BBB dans le premier cas, AAA et CCC dans le deuxième cas.


    Kreepz :

    J'ai essayé ta solution mais j'ai toujours le même problème

  5. #5
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Billets dans le blog
    1
    Par défaut
    Je ne sais pas si ça marche:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (strstr($text, $chainerecherchée)){
    	if(preg_match( '#AAA:(.*);#BBB', $text, $match)) {
    		echo $match[1];
    	} else {
    		if(preg_match( '#AAA:(.*)CCC#U', $text, $match)) {
    			echo $match[1];
    		}
    	}
    }
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  6. #6
    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
    Les délimiteurs sont AAA et BBB dans le premier cas, AAA et CCC dans le deuxième cas.

    Ce n'est pas ça qu'on appelle des délimiteurs. Regarde le lien dans ma première réponse (oui, je sais, les liens ne sont pas très visibles sur le forum...) pour en savoir plus.
    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

  7. #7
    Invité
    Invité(e)
    Par défaut
    Kreepz
    Non, il y a toujours ce problème undefinned offset
    Dernière modification par Bovino ; 17/04/2015 à 16h24. Motif: Inutile de citer un message pour y répondre !

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

Discussions similaires

  1. Récupération des résultats des méthodes dans un service WCF
    Par est09 dans le forum Windows Communication Foundation
    Réponses: 16
    Dernier message: 02/04/2009, 17h44
  2. [RegEx] récupération des résultats de preg_match_all
    Par Dharius dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2008, 15h48
  3. [EJBQL] [EJB3] [Junit] Récupération des résultats d'un select
    Par nramariavelo dans le forum Java EE
    Réponses: 1
    Dernier message: 04/10/2006, 17h22
  4. Réponses: 2
    Dernier message: 21/05/2006, 15h02
  5. Réponses: 2
    Dernier message: 29/03/2006, 10h38

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