Ticket #2350 (closed 改善提案: 修正済)

Opened 7 years ago

Last modified 7 years ago

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

comment:1 Changed 7 years ago by Qwert

  • Owner changed from somebody to Qwert
  • 修正済み set

comment:2 Changed 7 years ago by h_yoshimoto

  • Status changed from new to closed
  • Resolution set to 修正済

ご対応ありがとうございました。

クローズさせて頂きます。

Note: See TracTickets for help on using tickets.