downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

Resource Types> <Installation
[edit] Last updated: Fri, 17 May 2013

view this page in

Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

PCRE Configuration Options
Name Default Changeable Changelog
pcre.backtrack_limit "1000000" PHP_INI_ALL Available since PHP 5.2.0.
pcre.recursion_limit "100000" PHP_INI_ALL Available since PHP 5.2.0.
For further details and definitions of the PHP_INI_* modes, see the Where a configuration setting may be set.

Here's a short explanation of the configuration directives.

pcre.backtrack_limit integer

PCRE's backtracking limit. Defaults to 100000 for PHP < 5.3.7.

pcre.recursion_limit integer

PCRE's recursion limit. Please note that if you set this value to a high number you may consume all the available process stack and eventually crash PHP (due to reaching the stack size limit imposed by the Operating System).



add a note add a note User Contributed Notes Runtime Configuration - [2 notes]
up
1
php at richardneill dot org
2 years ago
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.
up
0
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.

 
show source | credits | sitemap | contact | advertising | mirror sites