[PHP] Question technique Regex

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par michel.leonard, 28 Juillet 2012.

  1. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    361
    J'aime reçus:
    0
    Salut chers WriNautes,

    Quand des Regex sont écrites exécutées sous condition dans une page PHP, est-ce que la compilation est plus longue que si elles étaient "include". En d'autres termes est-ce que tout le code est compilé ou seulement la partie à exécuter ?

    Exemple :
    PHP:
    <span class="syntaxdefault"><br />$x</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'/dossier/fichier.html'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$x</span><span class="syntaxkeyword">)==</span><span class="syntaxdefault">21 </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"preg_match</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'#une_regex#'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">$x</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Action'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxcomment">// est-il plus lent que ... ?<br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$x</span><span class="syntaxkeyword">)==</span><span class="syntaxdefault">21</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">include </span><span class="syntaxstring">'autres-verifs.php'</span><span class="syntaxkeyword">;}</span><span class="syntaxdefault"> </span>
    En supposant que vous n'avez pas une mais un grand nombre de regex à tester ainsi...
    et que strlen est une sorte d'index... seulement 5% du total ont la même strlen.
    Donc dans la plupart des cas la regex devrait renvoyer "false"
    Merci à ceux qui pourront tenter de me répondre...
     
  2. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    le cas 2 est plus rapide car la condition est plus courte (une évaluation pour trois sur le cas 1) et un des membres est commun aux deux cas. Mais il est impossible de te répondre car on ne connais pas "action" ni le code inclus donc le total n'est pas évaluable.
     
  3. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    361
    J'aime reçus:
    0
    Penses tu que les regex sont compilées, même si elles ne sont pas exécutées dans le code (car sous condition) ?
     
  4. p0k3
    p0k3 WRInaute occasionnel
    Inscrit:
    2 Juin 2010
    Messages:
    314
    J'aime reçus:
    0
    Tout le code est compilé au moins une fois à l'ouverture d'une page !

    Après les temps de chargement varie généralement à cause du graphisme... Pas à cause du code !
     
  5. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    361
    J'aime reçus:
    0
    Tu ne penses pas qu'un analyseur syntaxique détermine quelle partie du code doit être compilée ?
     
Chargement...
Similar Threads - [PHP] technique Regex Forum Date
Astuce [PHP] Récolter ville, pays du visiteur Développement d'un site Web ou d'une appli mobile 9 Mars 2021
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 14 Septembre 2019
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 12 Janvier 2017
[PHP] Cookie vide dans une fonction, complet juste avant ou après Développement d'un site Web ou d'une appli mobile 25 Novembre 2014
[php] Cookie d'un domaine vers un sous-domaine Développement d'un site Web ou d'une appli mobile 29 Août 2014
[PHP]Cci mails Développement d'un site Web ou d'une appli mobile 18 Août 2014
[PHP] gethostbyname Développement d'un site Web ou d'une appli mobile 15 Février 2014
[PHP] file_get_contents retourne un "Connection timed out" Développement d'un site Web ou d'une appli mobile 14 Février 2014
[PHP] Regex Complexe Développement d'un site Web ou d'une appli mobile 29 Octobre 2013
[PHP] Formulaire dynamique Développement d'un site Web ou d'une appli mobile 2 Mai 2013
[php] error suite à code antiduplication Développement d'un site Web ou d'une appli mobile 5 Février 2013
[PHP] Condition et include Développement d'un site Web ou d'une appli mobile 31 Janvier 2013
[PHP] comprendre ce code pour pseudo-frame Développement d'un site Web ou d'une appli mobile 28 Décembre 2012
[PHP] Requête très lente Développement d'un site Web ou d'une appli mobile 22 Septembre 2012
[PHP] file_get_contents sur le serveur même... Développement d'un site Web ou d'une appli mobile 9 Juillet 2012
[PHP] FILTER_VALIDATE_IP et REMOTE_ADDR Développement d'un site Web ou d'une appli mobile 8 Juillet 2012
[PHP] Requête PDO à modifier Développement d'un site Web ou d'une appli mobile 13 Mai 2012
[PHP] Détecter l'OS, le navigateur et la langue [Résolu] Développement d'un site Web ou d'une appli mobile 4 Mars 2012
[Php] Vérifier la présence d'un slash en fin d'url Développement d'un site Web ou d'une appli mobile 2 Mars 2012
[PHP] Youtube API Développement d'un site Web ou d'une appli mobile 2 Décembre 2011