web-dev-qa-db-fra.com

Le saut de ligne ne fonctionne pas lors de l'écriture dans un fichier texte PHP

J'ai le script de test suivant:

<?php

$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "Floppy Jalopy\n";
fwrite($fh, $stringData);
$stringData = "Pointy Pinto\n";
fwrite($fh, $stringData);
fclose($fh);

?>

cependant, lorsqu’il est exécuté et ouvert dans le bloc-notes Usign, les données sont renvoyées sur une seule ligne sans interruption, comme suit:

Floppy Jalopy (boîte folle) Pointy Pinto (boîte folle)

où je ne peux pas trouver le caractère approprié pour "boîte folle" mais c'est une boîte VRAIMENT folle. CE QUI DONNE!

27
JM4

Si vous souhaitez ouvrir le fichier dans le bloc-notes Windows, vous devez utiliser des sauts de ligne Windows: \r\n

33
AndreKR

Il vaut mieux utiliser PHP_EOL. Ceci est multi-plateforme, donc il choisit automatiquement le (s) caractère (s) de nouvelle ligne correct (s) pour la plate-forme sur laquelle PHP est en cours d'exécution.

$stringData = "Floppy Jalopy" . PHP_EOL;

PHP Constantes

55
Evan Mulawski

Votre code fonctionne bien.

Utilisez Notepad2 ou Notepad ++ si vous travaillez sous Windows. Le bloc-notes intégré ne parvient pas à gérer les fins de ligne de style Unix.

1
stillstanding

. PHP_EOL; fonctionnera universellement 

1
swarnim dixit