Ticket #2350 (closed 改善提案: 修正済)
php.iniの設定によって、transformに失敗する
Reported by: | Qwert | Owned by: | Qwert |
---|---|---|---|
Priority: | 低 | Milestone: | EC-CUBE2.13.0 |
Component: | その他 | Version: | 2.12.5 |
Keywords: | Cc: | ||
修正済み: | yes |
Description
テンプレートをtransformする際にpreg_replaceが用いられていますが、 当該テンプレートの文字数がpcre.backtrack_limitより多い場合に preg_replace及びtransformに失敗します。
SC_Initial::phpconfigInit()内にini_set('pcre.backtrack_limit', 1000000);を追加することで解決できます。
バージョン関係は、xampp1.5.4a(PHP5.1.6)で ini_set('pcre.backtrack_limit', 1000000);したところ、 エラーや警告などは発生しませんでした。
負荷については、xampp 1.8.1(PHP5.4.7)にて
ini_set('pcre.backtrack_limit', 1000000);
ini_set('pcre.backtrack_limit', 100000);
ini_set('pcre.backtrack_limit', 1000000);
上記3ケースを、prefilterTransformを用いるページで 100回ずつ負荷テストしたところ、 平均リクエスト完了時間の差はいずれも2ms未満でした。
Change History
Note: See
TracTickets for help on using
tickets.