Как вы заметили, существуют разные способы создания новой линии.
<br />
это не символ новой строки, это тег XHTML , что означает, что он работает в XHTML.
правильно говоря, это не символ новой строки, но тег гарантирует, что он вставлен = это вызывает разрыв строки. закрывающий тег обязателен.
Характеристики XHTML
<br>
это HTML-тег, который вызывает разрыв строки. закрывающий тег запрещен.
HTML 4.1 спецификации
\n
является escape-последовательностью для новой строки ASCII char LF. Распространенной проблемой является использование '\ n' при обмене данными с использованием интернет-протокола, который предписывает использование ASCII CR + LF для конечных строк. Запись '\ n' в поток текстового режима работает правильно в системах Windows, но производит только LF в Unix и что-то совершенно другое в более экзотических системах. Использование "\ r \ n" в двоичном режиме немного лучше, так как оно работает во многих ASCII-совместимых системах, но в общем случае не работает. Одним из подходов является использование двоичного режима и непосредственное указание числовых значений управляющей последовательности, "\ x0D \ x0A".
подробнее
PHP_EOL
- это константа новой строки php, которая заменяется правильной новой строкой, зависящей от системы.
так что сообщение, используйте все в нужном месте.