Si le haces explode por \n entonces las lineas te quedarán todas finalizadas en \r en el caso de windows y cuando le reingreses el \n\r quedarán como \r\n\r, no se que valor hexa utiliza mac pero en gedit me sale que no es ni \n ni \n\r creo que es solo \r pero no estoy seguro, por eso prefiero siempre nl2br()