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.ini の設定により動作が変化します。
名前 | デフォルト | 変更可能 | 変更履歴 |
---|---|---|---|
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | |
pcre.recursion_limit | "100000" | PHP_INI_ALL | |
pcre.jit | "1" | PHP_INI_ALL |
以下に設定ディレクティブに関する 簡単な説明を示します。
pcre.backtrack_limit
int
PCRE のバックトラック処理の制限値。 PHP < 5.3.7 ではデフォルトが 100000 でした。
pcre.recursion_limit
int
PCRE の再帰処理の制限値です。この値を大きくすると、 使用可能なプロセススタックを使い切ってしまい、 (OS のスタックサイズの制限値に達して) PHP をクラッシュさせてしまうことに注意しましょう。
pcre.jit
bool
PCRE の just-in-time コンパイルを利用するかどうか。
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.