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

search for in the

リソース型> <インストール手順
[edit] Last updated: Fri, 10 Feb 2012

view this page in

実行時設定

php.ini の設定により動作が変化します。

PCRE 設定オプション
名前 デフォルト 変更可能 変更履歴
pcre.backtrack_limit "1000000" PHP_INI_ALL PHP 5.2.0 以降で使用可能
pcre.recursion_limit "100000" PHP_INI_ALL PHP 5.2.0 以降で使用可能
PHP_INI_* モードの詳細および定義については どこで設定を行うのか を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

pcre.backtrack_limit integer

PCRE のバックトラック処理の制限値。 PHP < 5.3.7 ではデフォルトが 100000 でした。

pcre.recursion_limit integer

PCRE の再帰処理の制限値です。この値を大きくすると、 使用可能なプロセススタックを使い切ってしまい、 (OS のスタックサイズの制限値に達して) PHP をクラッシュさせてしまうことに注意しましょう。



add a note add a note User Contributed Notes 実行時設定
php at richardneill dot org 14-Jan-2011 09:55
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.
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.

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