Question file_put_contents et une nouvelle aide de ligne


J'ai un fichier avec lequel j'écris et je ne peux pas obtenir que file_put_contents ajoute la prochaine entrée sur une nouvelle ligne, même après un caractère de nouvelle ligne. Qu'est-ce que je rate? Je suis sur une machine Windows.

$file = 'test.txt';
$message = "test\n\n";
file_put_contents($file, $message, FILE_APPEND);

24
2018-02-24 10:30


origine


Réponses:


comment voyez-vous le contenu de $file? si vous utilisez le bloc-notes, vous ne pouvez pas voir \n.


10
2018-02-24 10:31



essayer

$file = 'test.txt';
$message = "test".PHP_EOL;
file_put_contents($file, $message, FILE_APPEND);

ou

$file = 'test.txt';
$message = "test\r\n";
file_put_contents($file, $message, FILE_APPEND);

77
2018-02-24 10:38



Pour PHP_EOL, vous ne verrez peut-être pas votre nouvelle ligne car vous définissez la fin de la ligne après avoir écrit votre nouvelle ligne. Par conséquent, la nouvelle ligne est créée uniquement lorsque le nouveau contenu est ajouté à la dernière ligne de votre fichier texte.

il devrait lire comme ceci:

$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);

15
2017-08-16 22:42



Il suffit de donner une nouvelle ligne normale et ça marche

$file = 'test.txt';
$message = "test
";
file_put_contents($file, $message, FILE_APPEND);

2
2018-06-19 07:49



Pour ceux qui transmettent le second argument à file_put_contents en tant que tableau plutôt qu'en tant que chaîne, cela permet également de placer PHP_EOL comme dernier élément du tableau:

file_put_contents($file, array('value 1', 'value 2', PHP_EOL), FILE_APPEND);

2
2018-04-12 19:53



Tout d'abord, lisez quelque chose sur le nouvelle ligne personnage. C'est différent pour chaque système d'exploitation ... Il y a LF, CR, CR + LF... Regarde ici

Sous Windows, vous avez besoin de CR + LF (\r\n) comme l'a déjà dit Mathieu. Sous Linux, seulement LF est nécessaire (\n)

Mais, bien sûr, utilisez PHP_EOL.

En utilisant des fichiers, vous aurez probablement besoin d'en savoir plus sur les séparateurs de chemin et de répertoire. Ils sont également différents. Utilisation DIRECTORY_SEPARATOR au lieu de barre oblique ou de barre oblique inverse;)


1
2017-10-03 19:05