Ho un problema su una scrittura su file che non capisco proprio perchè agisce cosi.
Io ho 2 file, uno che devo aprire in lettura ed uno in scrittura (con append).
Il mio programma deve leggere le righe del primo, copiarle alla fine del secondo e poi devo inserire io, su 3 righe diverse, le stringhe che mi arrivano da un database.
Codice PHP:
if (!$lettura = fopen("nomefile","r"))
{ echo "Spiacente, non posso aprire il file in lettura"; }
elseif (!$scrittura = fopen("nomefile2","a"))
{ echo "Spiacente, non posso aprire il file in scrittura"; }
else {
//qui copio il file
while(!feof($lettura))
{
$linea = fgets($lettura);
fwrite($scrittura, $linea);
}
}
//e qui aggiungo le righe del database
$linea = $resultSeg['ID']." - ".substr($resultSeg['nomi'], 0, 20)." - ".substr($resultSeg['testo'], 0, 40)."\n";
fwrite($scrittura, $linea);
fwrite($scrittura, $linea);
fwrite($scrittura, $linea);
Ora, la prima parte funziona perfettamente, la seconda invece che creare 3 righe, scrive le cose una di seguito all' altra.
Ho provato a togliere la prima parte e mettere $linea = "Provo \n ad \n andare \n a \n capo \n"; ed anche in questo caso me la scrive tutta di seguito.
Non interpreta quindi il \n come un andata a capo (quando leggendo ogni guida dovrebbe farlo.....).
La cosa che mi sa strana è che se gli faccio leggere invece un altro file col fgets lo copia perfettamente con pure le andate a capo... Quindi, se legge un andata a capo da un file funziona, se gliela do io col \n no....
Motivo?