что они называются \ r \ n и есть ли учебник, который их объясняет?
Это «возврат каретки» и «линия подачи» соответственно. Как правило, в Windows вам нужно обе вместе, чтобы представить терминатор линии: «\ r \ n», тогда как для большинства (все?) Unix-систем достаточно «\ n».
См. Запись в Wikipedia Newline для получения более подробной информации о капризах различных систем.
См. Руководство по PHP для получения дополнительной информации об эвакуационных последовательностях в целом и других доступных в PHP.
Многие другие языки (например, C, C ++, C #, Java, Perl, Python, Ruby) используют одни и те же escape-последовательности для возврата каретки и строки, но все они указаны для отдельного языка. (Другими словами, это язык специфический, но ответ будет одинаковым для многих языков.)
 \r – возврат каретки 
  \n – это символ новой строки 
Они доступны на многих других языках помимо PHP.
  Это escape-последовательности .  \n – это символ новой строки, а \r – возврат каретки. 
В Windows большинство текстовых редакторов имеют новую строку как \ r \ n, а в unix – \ n
  \r – Возврат каретки \n – Линейный канал (или новая строка ). 
  В системах Windows они вместе создают новую строку (т.е. каждый раз, когда вы нажимаете кнопку ввода, ваше исправление получится \r\n ). 
  В PHP, если вы откроете текстовый файл в стиле Windows, вы получите \r\n в конце абзацев / строк, если бы вы нажали enter.  Если это текстовый файл в стиле Unix, вы получите только \n . 
Не ответ на ваш вопрос, но, тем не менее, актуальный: я бы рекомендовал использовать константу PHP_EOL всякий раз, когда вы хотите вставить новую строку. Константа PHP_EOL содержит правильный новый символ (строки) для платформы, на которой выполняется сценарий (\ n в Unix, \ r \ n в Windows).
  \n – это новая строка или строка, другая сторона \r – возврат каретки.  Они отличаются тем, что их использует.  Windows использует \r\n для обозначения нажатия клавиши ввода, в то время как Linux и Unix используют \n для обозначения нажатия клавиши ввода. 
  В Unix и во всех Unix-подобных системах \n – это код для конца строки, \r ничего особенного не имеет.  В старых системах Mac (pre-OS X) вместо этого использовался код конца строки.  \r\n – стандартное прерывание строки для текстовых форматов в Интернете. 
  \r передает карету назад влево до тех пор, пока она не окажется на самой левой остановке, \n заставит ролик закрутить одну линию (более быстрая операция).  Вот почему у вас всегда есть \ r до \ n, так что ролик может двигаться, пока каретка все еще идет влево.