2011-02-01 9 views
24

Sto usando il codice PHP:PHP nuova linea non funziona in file di testo

$numberNewline = $number . '\n'; 
fwrite($file, $numberNewline); 

a scrivere il numero $ in un file.

Per qualche motivo \ n appare nel file. Sono su un mac. Quale potrebbe essere il problema?

+9

Non sono sicuro, ma penso che \ n funziona solo se si utilizza "non e '('' \ n'' è sbagliato, mentre '" \ n "' è a destra) – JCOC611

+0

Appena fuori dalla bat, Mac, Windows e * nix usano linefeed diversi (in generale) .Perché, solo Dio lo sa, mi ha fatto impazzire, fare una ricerca di newline e vedere http://en.wikipedia.org/wiki/Newline. –

+0

Oh sì, e devi usare le doppie stringhe citate –

risposta

34
$numberNewline = $number . "\n"; 
fwrite($file, $numberNewline); 

Prova questo

+2

Per me questo non funziona anche per la nuova linea L'unica cosa che funziona per me è "\ r \ n" con file di testo –

+1

Dipende dal sistema operativo del server. – borayeris

+0

ok.I miei server di sviluppo e produzione sono entrambi diversi (anche il sistema operativo è diverso), per favore fammi sapere quale devo usare? –

30

Se si inserisce "\ n" non produce alcun risultato, si può anche provare "\ r \ n" che aggiunge un "ritorno a capo" e " nuova linea."

1

Il motivo per cui non si vede una nuova riga è perché i file .txt scrivono i suoi dati come una pila. Comincia a scrivere dall'inizio, poi dopo che finisce, la linea lampeggiante (quella che indica dove sta andando il tuo prossimo personaggio) torna all'inizio. Quindi, il tuo "\ n" deve andare all'inizio.

Invece di scrivere:

<?php 
    $sampleLine = $variable . "\n"; 
    $fwrite($file, $sampleLine); 
?> 

si dovrebbe scrivere:

<?php 
    $sampleLine = "\n" . $variable; 
    $fwrite($file, $sampleLine); 
?> 
16

Usa PHP_EOL. PHP_EOL è indipendente dalla piattaforma e di buon approccio.

$numberNewline = $number .PHP_EOL; 
fwrite($file, $numberNewline); 

PHP_EOL è cross-platform-compatibile (DOS/Mac/Unix).

+2

Per qualche motivo non ho potuto ricordare come fare questo, e così ho chiesto ad Internet ed è atterrato qui. Appena ho visto questa risposta, mi sono ricordata. Duh. Questo, davvero, è il migliore. Gli altri funzionano, forse, ma questa è la risposta più corretta. – Carnix

0

Nessuno dei precedenti ha funzionato per me, ma è stato così semplice - qui è il codice ... si prega di utilizzare il metodo bacio.

echo file_put_contents("test.txt","\r\n \r\n$name \r\n$email \r\n$phone", FILE_APPEND); 

Imposta una nuova riga vuota e quindi aggiunge una riga alla volta.

0

$ numberNewline = $ number. '\ R \ n';

fwrite ($ file, $ numeroNewline);

provare questo