Почему две функции выполняют одно и то же? Они оба добавляют строку.
Любая разница между ними?
Это не имеет ничего общего с PHP и является следствием истории:
\n для разрывов строк \r PHP просто сохранил это поведение – поэтому он может работать с этими разными ОС и их файлами.
Кроме того, обратите внимание:
\r – Возврат каретки \n – новая строка