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