Comment détecter les caractères de fin de ligne en php

Publié le 8 Juillet 2014

Si vous avez mis en place un téléchargement de fichier sur votre site vous vous êtes peut être confronté aux différences de caractère de fin de ligne.

Par exemple linux et mac os x utilisent le saut de ligne simple (line feed) qui se représente par \n. De l'autre côté les fichiers téléchargés depuis une machine Windows utilisent le retour charriot et de saut de ligne soit \r\n

Si cela a une incidence sur la façon dont vous devez traiter les fichiers il faut détecter le caractère de fin de ligne et dans mon cas sans charger tout le fichier en mémoire.

J'ai trouvé l'astuce suivante (je ne sais pas s'il y a mieux mais ça fonctionne en ne lisant que la première ligne du fichier):

<?php
$fichier = fopen('fichier/telecharge.txt', 'r');
$line = fgets($fichier);
fclose($fichier);

$fin_de_ligne = "";
if (strpos($ligne, "\r")) $fin_de_ligne .= "\r";
if (strpos($ligne, "\n")) $fin_de_ligne .= "\n";
?>

Rédigé par Bliz

Publié dans #php

Repost 0
Commenter cet article