preg_split("/({{\s*(?:(?!}}).)+\s*}})/s", file_get_contents('data.txt'));
Эта строка заставляет Apache сбросить соединение.data.txt составляет приблизительно 12 кБ.
data.txt
Что я делаю не так, могу ли я как-то оптимизировать регулярное выражение?
Попробуйте вместо этого регулярное выражение:
/({{(?>(?:[^}]|}[^}])+)}})/s
Основные улучшения:
(?>…)
(?:[^}]|}[^}])+
Попробуйте прочитать файл в переменную, а не передавать его в preg_split.Я думаю, что это file_get_contents problem rather than preg_split`.
problem rather than