[PHP] Question technique Regex

WRInaute occasionnel
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...
 
WRInaute accro
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.
 
WRInaute occasionnel
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 !
 
Discussions similaires
Haut