file_put_contents(... FILE_APPEND) дописывает содержимое в конец без пересоздания и перечитывания файла
это просто упрощенная запись конструкции
fopen(...,'a');fwrite(...);fclose(...);
если FILE_APPEND не указывать, то используется режим типа w+ (существующие файлы обрезаются в 0 размер, не существующие ошибки не вызывают)
p.s. важное замечание file_put_contents FILE_APPEND работает очень медленно, синхронизируя каждую запись с диском, я помню переписывал код на использование fopen/fwrite плюс там можно гибко задавать
буфер записи
upd. на самом деле там
используется просто режим 'a' и 'c' и чуть больше проверок
С интересом обнаружил по исходникам что file_put_contents умеет писать array, объединяя без разделителя значения и пропуская ключи.... век живи век учись, не знаю зачем но смешно