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 :

Temps d'execution d'une expression régulière [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Temps d'execution d'une expression régulière
    Bonjour,

    J'ai créé une expression régulière en deux morceaux (deux preg_match_all différents) qui fonctionne bien (mes retours sont bons).
    Lorsque je concatène les deux regex en un seul preg_match_all, j'ai l'erreur suivante (je tourne sous EasyPhp):

    ERR_CONNECTION_RESET

    J'ai tenté un ini_set('max_execution_time', 0); pour débrider le calcul, mais j'ai la même erreur.

    Savez-vous d'où ça pourrait venir?

    Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Personnellement, j'utilise plutôt la fonction set_​time_​limit pour changer la durée d'exécution autorisée d'un script (et jamais sans limite, pasque j'ai pas envie d'avoir à redémarrer mon serveur à chaque fois que quelque chose part en vrille...)

    Pour plus d'analyse, il va nous falloir les 3 patterns (les deux séparés et celui qui les combine).
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    En fait, en isolant le regex, c'est une partie de celui-ci qui fait planter (et donc a priori pas le fait qu'il y en ait un ou deux):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $motif = '`\<\s*td.*?\>\s*\<\s*a.*?\>((.|\n|\r)*?)\<\s*/a\s*\>((.|\n|\r)*?)\<\s*/td\s*\>\s*`';
    Je souhaite chercher dans une colonne de tableau, le forme suivante:

    <td><a>XXX</a>YYY</td>
    sachant que le formalisme n'est pas très propre, il peut se glisser quelques espaces, sauts, etc dans mes balises ou texte, d'où ma multitude de /s*.

    Ce motif mène au ERR_CONNECTION_RESET

    Une idée du pourquoi? Merci

    EDIT: c'est clairement cette partie qu'il n'aime pas:

    Je souhaite prendre en compte tous les caractères, dont les sauts de ligne / retour chariot / tabulation...

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    J'ai résolu mon problème en ajoutant l'option s.

    Ca valait le coup de mieux débogger, merci.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/08/2005, 12h38
  2. Temps d'execution d'une requête
    Par Maglight dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/01/2005, 08h38
  3. Problème sur une expression régulière
    Par Verbal-Quint dans le forum Langage
    Réponses: 6
    Dernier message: 12/11/2004, 10h54
  4. [VB.NET] Temps d'éxécution d'une page...
    Par Webman dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/06/2004, 12h20
  5. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 14h22

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