0
preg_split("/({{\s*(?:(?!}}).)+\s*}})/s", file_get_contents('data.txt'));

その行により、Apache は接続をリセットします。data.txt約12kBです。

どういうわけか正規表現を最適化できますか?

4

2 に答える 2

2

代わりに、次の正規表現を試してください。

/({{(?>(?:[^}]|}[^}])+)}})/s

主な改善点:

  • (?>…)–バックトラックを回避するためのアトミックグループ化
  • (?:[^}]|}[^}])+–見回す必要がなく、貪欲でないマッチングもありません
于 2011-01-03T17:33:29.563 に答える
0

preg_splitに渡すよりも、ファイルを変数に読み込んでみてください。problem rather thanfile_get_contentspreg_split`だと思います。

于 2011-01-03T17:35:31.933 に答える