Антон, там все хуже, он не отправляет через этот класс, а продолжает дергать стандартый mail(), передавая туда класс как строку.
И сообщения об ошибках игнорирует. Это сложно лечить.
olya_097, сорри, у меня некоторое время была открыта вкладка, и я писал комментарий как будто он третий в этой ветке, а оказалось что все уже успели разъяснить :)
Свой сервер написать настолько проще, чем настроить существующий, что вариант "прописать соответствующее правилов в htacess или конфиг nginx" вы даже не рассматриваете?
sorry_i_noob, в большинстве случаев, задачу можно решить несколькими способами, и одни из них могут вам показаться более простыми, а другие - более сложными. На практике выбирают те что понадежнее, поэкономнее по ресурсам, попроще в реализации, или даже какие первые в голову придут.
Можно действительно читать блоками, подобрав размер блока так, чтобы ваша регулярка не упиралась в pcre.backtrack_limit
Чтобы избежать проблемы "пробелы попали на границу" нужно либо брать блоки с перекрытием, либо запоминать сколько там было пробелов в конце предыдущего блока и складывать их с кол-вом пробелов в начале текущего.
Или можно забраться в настройки и увеличить pcre.backtrack_limit и надеяться, что PHP сможет прожевать ваш файл.
sorry_i_noob, насколько я понимаю, в стандартной сборке это сделать нельзя.
А вообще, если вы знаете что книги разделены десятком переводов строк, то пожно найти это место при помощи strpos а потом взять substring, например.
Или вычитывать блоками, пока не наткнетесь на десяток переводов строк.