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 :

[CSV] retour à la ligne? [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 72
    Points : 44
    Points
    44
    Par défaut [CSV] retour à la ligne?
    Bonjour,

    Je souhaite créer un fichier csv.
    J'arrive bien à écrire avec la fonction fwrite() dans le fichier.

    Chaque champ sont séparés par des ; et s'affiche bien dans des cellules différentes sous Excel.

    Mais je n'arrive pas à écrire un retour à la ligne dans le fichier.
    J'ai essayé : \n, \r\n, /\n, /n, /\r\n et /\r/\n.

    Que faire?

    Merci

  2. #2
    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
    essaie \r tout seul

    comme dit dans la doc du fopen :

    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.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 72
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par titoumimi
    essaie \r tout seul
    Merci mais ca ne vas pas.
    Comme avant, ca m'écrit \r dans le fichier au lieu de faire un retour de ligne.

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 72
    Points : 44
    Points
    44
    Par défaut
    Personne n'aurait une idée???
    Parceque ca devient vraiment urgent, je dois rendre ce travail au chef avt midi... sinon

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 72
    Points : 44
    Points
    44
    Par défaut
    Voici la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function generer_csv($id_resultat, $fich)
    {
    	// Mise en forme du texte au format csv
    	$tab = '';
    	while( $result = mssql_fetch_array($id_resultat) )
    	{	
    		for($j = 0; $j <  mssql_num_fields($id_resultat); $j++)
    		{
    			$tab = $tab.$result[$j].';';
    		}
    		$tab = $tab.'\n;';
    	}
    	// Création, écriture, fermeture du fichier
    	$fp = fopen("csv/".$fich, 'wt');
    	fwrite($fp, $tab );
    	fclose($fp);
    }
    Le $id_resultat provient d'une requete mssql_query();

    Ce que j'ai essayé de plus :
    - mettre ou enlevé le ; après \n.
    - 'wb' et 'wt' et 'w' seul

    Je précise que je suis sous Win XP. Serveur IIS.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Hello,

    C'est bien, avec un bout de code le problème se résoud en 2 secondes...

    tes codes de retour à la ligne ne sont pas interpretés car entre apostrophes. Met les entre guillemets et ça ira beaucoup mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tab = $tab.'\n;';
    devient

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 72
    Points : 44
    Points
    44
    Par défaut
    Viens là que je te fasse un gros !!!
    Merci beaucoup petitbidon !!!!

    Le pire, c'est que j'y avais pensé mais comme un boulet, j'ai mis les doubles quotes sur le 'w' (mode d'écriture).

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

Discussions similaires

  1. CSV Retour à la ligne
    Par nkordiko dans le forum Langage
    Réponses: 0
    Dernier message: 15/04/2010, 11h48
  2. [CSV] CSV - retour de ligne dans une cellule
    Par eniki dans le forum Langage
    Réponses: 6
    Dernier message: 05/02/2009, 22h39
  3. [CSV] Retour à la ligne dans Excel en PHP
    Par zulot dans le forum Langage
    Réponses: 3
    Dernier message: 19/02/2007, 17h43
  4. [XSLT][>CSV]retour a la ligne dans une cellule d'un fichier csv
    Par ujoodha dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 09/07/2006, 12h08
  5. [CSV] supprimer les retours à la ligne
    Par illegalsene dans le forum Langage
    Réponses: 3
    Dernier message: 09/01/2006, 16h14

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