IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Génération Fichier Texte] \n ne passe pas bien


Sujet :

Langage PHP

  1. #1
    Membre expérimenté Avatar de nebule
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 507
    Points : 1 464
    Points
    1 464
    Par défaut [Génération Fichier Texte] \n ne passe pas bien
    Bonjour,

    Je génére avec php des fichiers textes et j'ai un petit soucis avec les sauts de lignes.

    par endroit, j'ajoute mes données et je fais un petit "\n" en fin de ligne type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $commentaire="\nH1;Historique;;;;;;;;;\n";
    Ca me génére bien mon fichier mais quand je l'ouvre avec notepad, il me met des petits rectangle à la place des saut de ligne.
    Une fois ouvert avec autre chose que notepad et enregistré de nouveau, les sauts de ligne sont bien pris en compte et tout re-rentre dans l'ordre mais plusieurs soucis se posent :
    1°) les utilisateurs vont forcement l'ouvrir avec notepad et donc voir le bazzare que c'est
    2°) si je traite le nouveau fichier généré en php (ce qui arrive logiquement 2 minutes aprés) il ne reconnait pas les sauts de ligne et bug (maximum type ...) car il ne trouve pas l'entrée H1 en début de ligne.

    Comment faire pour avoir des vrais saut de lignes ?

    Merci
    (\ _ /)
    (='.'=)
    (")-(")

  2. #2
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Essaye plutot \r\n a la place de \n

    Je pense que ca ira mieux avec notepad.
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  3. #3
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    il faut se méfier avec ce genre de caractères ... il me semble que c'est \n sous linux, \r sous mac, et \r\n sous windows, ou l'inverse

    Je cherche confirmation, et je te colle le lien...

    Edit : Et hop !!!
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  4. #4
    Membre expérimenté Avatar de nebule
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 507
    Points : 1 464
    Points
    1 464
    Par défaut
    Citation Envoyé par stunti
    Essaye plutot \r\n a la place de \n

    Je pense que ca ira mieux avec notepad.
    j'étais justement en train d'essayer avec ça mais ca me fait toujours la même chose
    (\ _ /)
    (='.'=)
    (")-(")

  5. #5
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    J'ai trouvé ça, si ca peux t'aider :

    Note : Les systèmes d'exploitation utilisent différents caractères pour les nouvelles lignes. Lorsque vous écrivez un fichier texte, et insérez une nouvelle ligne, vous devez utiliser le bon caractère pour votre système d'exploitation. Les systèmes Unix utilisent \n comme nouvelle ligne, les systèmes Windows utilisent \r\n, et les systèmes Macintosh utilisent \r.

    Si vous n'utilisez pas le bon caractère de nouvelle ligne lors de l'écriture de vos fichiers, vous risquez d'ouvrir vos fichiers avec des applications qui donneront un aspect 'bizarre' au texte.

    Windows propose un mode de traduction ('t'), qui va traduire automatiquement les caractères \n en \r\n lorsque vous travaillez sur le fichier. À l'inverse, vous pouvez utiliser l'option 'b' pour forcer le fichier a être écrit en mode binaire, sans traduction des données. Pour utiliser ces options, ajoutez 'b' ou 't' comme dernier caractère du paramètre mode.

    Le mode de traduction par défaut dépend de l'interface SAPI et de la version de PHP que vous utilisez. Nous vous recommandons de toujours spécifier les options de traductions pour des raisons de portabilité. Vous devriez utiliser 't' lorsque vous écrivez des fichiers de texte, et le caractère \n pour définir vos fin de ligne, dans les scripts, mais que vous vous attendez à ce que le fichier soit relu par une application comme Notepad. Vous devriez toujours utiliser l'option 'b' dans les autres cas.
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  6. #6
    Membre expérimenté Avatar de nebule
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 507
    Points : 1 464
    Points
    1 464
    Par défaut
    Citation Envoyé par titoumimi
    J'ai trouvé ça, si ca peux t'aider :
    merci, c'est pas mal du tout, c'est mieux mais pas encore parfait ...
    je vais revoir ça.

    enfin j'ai moins de lignes avec des rectangles mais j'en ai toujours
    (\ _ /)
    (='.'=)
    (")-(")

  7. #7
    Membre expérimenté Avatar de nebule
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 507
    Points : 1 464
    Points
    1 464
    Par défaut
    Citation Envoyé par nebule
    merci, c'est pas mal du tout, c'est mieux mais pas encore parfait ...
    je vais revoir ça.

    enfin j'ai moins de lignes avec des rectangles mais j'en ai toujours
    Bon c'est bon, en remplacant bien tous les \n par \r\n ca marche

    Merci
    (\ _ /)
    (='.'=)
    (")-(")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD12] gestions de fichiers texte qui ne sont pas au format "txt"
    Par le pingouin fou dans le forum WinDev
    Réponses: 4
    Dernier message: 21/06/2011, 11h52
  2. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54
  3. Importer des fichiers textes délimités
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 23/09/2002, 13h56
  4. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo