Als je het weer wilt bewerken, moet je wel die <br /> 's verwijderen.
Anders krijg je dubbele <br /> erin...
Dat kan je oplossen door een str_replace doen.
... als php dit wegschrijft zet hij alles op 1 lijn. ...
Dat is toch wel ongelukkig uitgedrukt.
Het is niet php die die tekst op 1 lijn zet.
Open eens die file in kladblok; je ziet dat alles mooi op meerdere lijnen zal staan.
Het is gewoon dat HTML een nieuwe lijn in de code negeert.
Ik zou dan ook de oplossing niet zoeken bij het schrijven naar file, maar wel na het lezen van de file.
Voorbeeldje
<?php
$tekst = "jfhsrfherhgre
fggrehr
trhrehtrhrthryh
rhrhyrhyrhryhry
hyryrhyrhrthyhtr";
//tekst wegschrijven naar file:
file_put_contents('tekstfile.txt', $tekst); // zie juist dat je de rechten hebt om die file aan te maken
//terug lezen van de file
$file_inhoud = file_get_contents('tekstfile.txt');