pcre.backtrack_limit defaults to 100k. This is rather conservative.
It is limited by RAM size, not the ulimit on stack-size.
On a (2009-era) netbook, I can set pcre.backtrack_limit to 100 million, and the regex will happily process a 90 million character string in about 3 seconds. YMMV.
Configuration à l'exécution
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
| Nom | Défaut | Modifiable | Historique |
|---|---|---|---|
| pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Disponible depuis PHP 5.2.0. |
| pcre.recursion_limit | "100000" | PHP_INI_ALL | Disponible depuis PHP 5.2.0. |
Voici un éclaircissement sur l'utilisation des directives de configuration.
-
pcre.backtrack_limitentier -
PCRE's backtracking limit. Par défaut à 100000 en PHP < 5.3.7.
-
pcre.recursion_limitentier -
Limite de récurrence PCRE. Notez que si vous définissez cette valeur à un nombre très élevé, vous pourriez consommer tous les processus disponibles et, éventuellement, faire planter PHP (la taille limite de la pile imposée par le système sera atteinte).
php at richardneill dot org ¶
2 years ago
chris at ocproducts dot com ¶
2 years ago
pcre.backtrack_limit sets the maximum bind length PREG calls (e.g. preg_replace_callback) can make. However the actual maximum seems to be approximately half the value set here, possibly due to the character encoding that PCRE runs with internally.
