Maison > Article > développement back-end > Pourquoi est-ce que j'obtiens des retours à la ligne lorsque j'écris dans un fichier en PHP ?
Problèmes de saut de ligne en PHP : surmonter le saut de ligne de fin
Lors de l'écriture dans un fichier en PHP à l'aide de fwrite() avec le mode 'w' , il est courant que des caractères de nouvelle ligne inattendus soient ajoutés à la sortie. C'était le cas dans le code fourni, où 'n' était destiné à créer des sauts de ligne mais apparaissait à la place sous forme de chaîne.
Le dilemme n
La raison derrière ce comportement particulier réside dans la séquence d'échappement utilisée. Par défaut, les chaînes entre guillemets simples traitent « n » comme une barre oblique inverse littérale suivie de la lettre « n », et non comme un caractère de nouvelle ligne. Pour remédier à cela, il est nécessaire d'utiliser des chaînes entre guillemets et d'échapper correctement le caractère de nouvelle ligne en utilisant "n".
Fin de ligne Windows et Unix
Un autre aspect à considérer est le caractère de fin de ligne. Différents systèmes d'exploitation utilisent différentes conventions pour les fins de ligne :
Pour garantir une bonne gestion des fins de ligne, il est recommandé d'ouvrir le fichier en mode binaire, ce qui permet d'écrire des données brutes sans aucune conversion de fin de ligne. Cela implique d'utiliser 'wb' comme deuxième paramètre pour fopen().
Code mis à jour :
En implémentant ces correctifs, le code modifié ci-dessous écrit avec succès chaque ID de gemme sur une nouvelle ligne sans aucun caractère superflu :
$i = 0; $file = fopen('ids.txt', 'wb'); foreach ($gemList as $gem) { fwrite($file, $gem->getAttribute('id') . "\n"); $gemIDs[$i] = $gem->getAttribute('id'); $i++; } fclose($file);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!