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 :
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...
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...