Если пробелы / разрывы могут встречаться в любой последовательности и из любой потенциальной ОС, тогда это будет подход дробовика:
$fixed_string = preg_replace('/[\s\n\r]+/', "\n", $bad_string);
Он будет искать один или несколько пробелов (\ s), символы новой строки (\ n) и возврата каретки (\ r) и замените их символом новой строки.