Sto salvando in un file una sequenza di righe del tipo

$h = fopen("miofile.txt", "w");
$riga="Sono le ore ".date("H:i")."\r\n";
fwrite ($h, base64_encode($riga)) or die ("Errore");
fclose($h);

Il problema è che quando poi vado a leggere il file,

$letto = file_get_contents("miofile.txt");
echo "Ho letto: ".$letto."\n";
echo base64_decode($letto)."\n";

la variabile $letto contiene tutto il file, ma se stampo base64_decode($letto) VEDO SOLO LA PRIMA RIGA!

Le ho provate tutte, a mettere dei cicli in lettura e anche a scrivere le righe senza \r\n (che comunque a me servono in quanto nel file di output decodificato devo legegre le righe distintamente), mi sapete dire come posso poi riuscire a decodificare tutto il file riga per riga?

Grazie!