Вы должны использовать PHP_EOL
константу, чтобы иметь независимую от платформы новую строку.
По моему мнению, использование не-регулярных выражений функций, когда это возможно, делает код более читабельным.
$newlineTags = array(
'<br>',
'<br/>',
'<br />',
);
$html = str_replace($newlineTags, PHP_EOL, $html));
Я знаю, что у этого решения есть некоторые недостатки, но все же хотел поделиться своими мыслями.