PHPerKaigi 2021


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

名字 默认 可修改范围 更新日志
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.recursion_limit int

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

pcre.jit bool

是否使用 PCRE 的 JIT 编译.

add a note add a note

User Contributed Notes 2 notes

chris at ocproducts dot com
10 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.
610010559 at qq dot com
1 year ago
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.
To Top