运行时配置

这些函数的行为受 php.ini 中的设置影响。

PCRE配置选项
名字 默认 可修改范围 更新日志
pcre.backtrack_limit "100000" PHP_INI_ALL php 5.2.0 起可用。
pcre.recursion_limit "100000" PHP_INI_ALL php 5.2.0 起可用。
pcre.jit "1" PHP_INI_ALL PHP 7.0.0 起可用
有关 PHP_INI_* 样式的更多详情与定义,见 配置可被设定范围

这是配置指令的简短说明。

pcre.backtrack_limit int

PCRE的回溯限制.

pcre.recursion_limit int

PCRE的递归限制. 请注意, 如果 讲这个值设置为一个很大的数字, 你可能会消耗掉 所有的进程可用堆栈, 最终导致php崩溃(直到达到系统限制的堆栈大小).

pcre.jit bool

是否使用 PCRE 的 JIT 编译.

User Contributed Notes

610010559 at qq dot com 18-Nov-2019 12:05
pcre.backtrack_limit can be set to -1;
ini_set("pcre.backtrack_limit", "-1");

after i put the above code in my code, it works;
so i guess -1 means infinite(i am not very sure ,but it works);
so when you have not idea how much it should be set in your program, you can try this.
chris at ocproducts dot com 02-Jul-2010 07:42
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.