Я не уверен на 100%, как работает текстовый файл, но я думаю, что блокировка здесь не поможет, так как блокировки снимаются, когда скрипт завершен (или перезагружен).
Похоже, что выпросто "убейте" свой cutline
во время выполнения, а остальные строки не будут записаны.Одним из способов решения этой проблемы может быть сохранение нового содержимого файла во временную переменную и вызов fwrite
только один раз.(Я не уверен на 100%, сработает ли это)
Другая возможность - записать результаты cutline
во временный файл и заменить старый файл новым, когда метод cutline
сделанный.Это может произойти внутри метода.
В любом случае существующий файл не будет затронут, если скрипт будет убит в небезопасном состоянии.Но вы все равно можете потерять новый ввод от пользователя, когда ему удастся перезагрузить страницу сразу после вызова функции cutline
и до того, как вы добавите новый ввод в эту строку
fwrite($fh, $stringData);
Я думаю, что этодействительно трудно форсировать, так как эта операция довольно быстрая.
РЕДАКТИРОВАТЬ:
Не забудьте протестировать скрипт с использованием нескольких пользователей одновременно, если этодействительный вариант использования.Если два или более парня редактируют один и тот же файл одновременно, это также приведет к путанице.Таким образом, вы можете получить некоторую блокировку, но это не решит проблему, описанную здесь.