Работа с файлами в PHP полна ловушек, особенно в отношении параллелизма и блокировок. Тот факт, что вы пишете файлы конфигурации, подразумевает также, что вы выставляете задачи, обычно доступные только пользователю с привилегиями root через Интернет. Вы не упомянули эти вещи в своем посте, но ваш вопрос тривиален по сравнению с решением этих проблем.
Что касается вашего вопроса - хотя довольно просто реализовать то, что вы предлагаете (например, выполнив sed - хотя вы не сказали, на какой ОС это работает), я бы порекомендовал создать копию оригинального файла в некоторых другое представление - очевидными кандидатами будет база данных - где вы можете применить порядковые номера к строкам и легко создать пробел для заполнения, или PHP SplDoublyLinkedList, хранящийся в сеансе. Затем, как только пользователь внес столько изменений, сколько ему требуется, сгенерируйте файл за одну операцию из рабочего представления.
Обратите внимание, что, в конечном счете, независимо от того, как вы реализуете решение, решение перепишет весь файл - это всего лишь вопрос того, насколько этот процесс представлен в вашем коде.
Имейте в виду, что вы делаете то же самое, что и большинство веб-скриптов php - за исключением того, что они манипулируют и перекодируют HTML, вы делаете это с другим типом файла - так что вы можете посмотреть, как другие Написаны системы шаблонов PHP, и подумайте, можете ли вы создать шаблон для ваших конфигурационных файлов.
НТН
С