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.
PHP - Manual: 运行时配置
2024-12-23
这些函数的行为受 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 起可用 |
这是配置指令的简短说明。
pcre.backtrack_limit
int
PCRE的回溯限制.
pcre.recursion_limit
int
PCRE的递归限制. 请注意, 如果 讲这个值设置为一个很大的数字, 你可能会消耗掉 所有的进程可用堆栈, 最终导致php崩溃(直到达到系统限制的堆栈大小).
pcre.jit
bool
是否使用 PCRE 的 JIT 编译.
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.
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.