php - new - file_put_contents y una nueva línea de ayuda
php new file (6)
Tengo un archivo en el que estoy escribiendo y no puedo obtener file_put_contents para agregar la siguiente entrada en una nueva línea, incluso después de un carácter de nueva línea. ¿Qué me estoy perdiendo? Estoy en una máquina de Windows.
$file = ''test.txt'';
$message = "test/n/n";
file_put_contents($file, $message, FILE_APPEND);
¿Cómo estás viendo los contenidos de $file
? Si estás usando el bloc de notas no puedes ver /n
.
Para PHP_EOL puede que no veas tu nueva línea porque estás definiendo el final de la línea después de escribir tu nueva línea. Por lo tanto, la nueva línea solo se crea después de agregar el nuevo contenido a la última línea de su archivo de texto.
debería leerse así:
$file = ''test.txt'';
$message = ''some message that should appear on the last line of test.txt'';
file_put_contents($file, PHP_EOL . $message, FILE_APPEND);
Para aquellos que están pasando el segundo argumento a file_put_contents como una matriz en lugar de una cadena, también funciona para poner PHP_EOL como el último elemento de la matriz:
file_put_contents($file, array(''value 1'', ''value 2'', PHP_EOL), FILE_APPEND);
Primero, lee algo sobre la nueva línea de caracteres. Es diferente para cada sistema operativo ... Hay LF , CR , CR + LF ... Echa un vistazo here
En Windows, necesita CR + LF ( /r/n
) como ya dijo Mathieu. En Linux, solo se necesita LF ( /n
)
Pero, para estar seguro, use PHP_EOL
.
Al usar archivos, probablemente necesite saber más sobre los separadores de ruta y directorio. También son diferentes. Use DIRECTORY_SEPARATOR
lugar de barra diagonal o barra diagonal inversa;)
Solo dale una nueva linea normal y funciona.
$file = ''test.txt'';
$message = "test
";
file_put_contents($file, $message, FILE_APPEND);
tratar
$file = ''test.txt'';
$message = "test".PHP_EOL;
file_put_contents($file, $message, FILE_APPEND);
o
$file = ''test.txt'';
$message = "test/r/n";
file_put_contents($file, $message, FILE_APPEND);