preg_split("/({{\s*(?:(?!}}).)+\s*}})/s", file_get_contents('data.txt'));
この行では、Apacheが接続をリセットします。 data.txt
は約12kBです。preg_splitの結果が接続リセット
私は間違っているのですが、何とか正規表現を最適化できますか?
preg_split("/({{\s*(?:(?!}}).)+\s*}})/s", file_get_contents('data.txt'));
この行では、Apacheが接続をリセットします。 data.txt
は約12kBです。preg_splitの結果が接続リセット
私は間違っているのですが、何とか正規表現を最適化できますか?
ではなく、この正規表現を試してみてください:
/({{(?>(?:[^}]|}[^}])+)}})/s
を主な改善点:
(?>…)
からatomic grouping(?:[^}]|}[^}])+
をバックトラックを避けるために - ノールックまわり、無非貪欲なマッチングpreg_splitするためにそれを渡すよりも、変数にファイルを読み込む試してみてください。私はそれがfile_get_contents problem rather than
preg_split`だと思います。
おかげで、それは何のトラブル読みがありませんでした変数へのファイル – Znarkus
どのバージョンのPHPですか? – ircmaxell
何で分けていますか? – BoltClock
PHP 5.2.11、5.3.3および5.3.4 – Znarkus