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 :

En-tête et découpage de fichier


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Par défaut En-tête et découpage de fichier
    Bonjour

    Quand l'utilisateur rempli le formulaire en ligne, et qu'il le valide, ça ma génère un fichier TXT (par un fwrite).
    Je souhaiterai néanmoins écrire dans ce fichier au moment de sa génération, une ligne d'en-tête à intervalle régulier (toutes les 3 lignes par exemple).


    En-tête : Prénom;nom;age;ville
    Ligne
    Ligne
    Ligne
    En-tête : Prénom;nom;age;ville
    Ligne
    Ligne
    Ligne

    J'ai essayé plusieurs choses sans résultats ...
    Si quelqu'un peut m'apporter une petite aide svp

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    lors de la génération de ton fichier texte, il suffit que dans ta boucle, pour chaquer personne, tu écrive ton en tete avant d'ecrire les trois lignes. Après avec du code c'est plus facile d'aider

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Par défaut
    plus ou moins, l'idée est là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while (($data = fgetcsv($handle, 4096, ";")) !== FALSE) {
    		$num = count($data);
     
     
    				fwrite($fp,implode($delimiter , $data)." \r");
     
     
    	fclose($handle);
    }

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,

    une base à travailler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $i=0;
    $handle=fopen( .../...
    while (($data = fgetcsv($handle, 4096, ";")) !== FALSE) {
      if($i%3==0) fwrite($fp, "En-tête : ".$prenom.";".$nom.";".$age.";".$ville."\r");
      fwrite($fp,implode($delimiter , $data)." \r");
      $i++;
    } 
    fclose($handle);

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Par défaut
    cool, je m'y met

    merci

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Par défaut
    après adaptation dans mon code, ça fonctionne bien

    J'ai néanmoins, une autre question, je souhaite, toutes les 3 lignes par exemple, que si dans la ligne, le nom == au nom de la ligne d'avant alors je décale l'insertion de mon en-tête, d'une ligne ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $i=0
    $nom=array();
     
    While ...{
    ...
    	if($i%3==0){
    		if($nom[$i-1]) == ($nom[$i])) {
    			$i++;
    		}else{
    			fwrite(...);		
    		}
    	}
    }
    mais ça ne semble pas très bien fonctionner, entre autre, à la ligne 0, il ne trouve pas de ligne -1, ce qui est logique.

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    ca dépend de ton utilisation de $i. dans le cas ou tu as des autres traitements avec, je verrai bien un truc comme ca
    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
    18
    $i=0
    $nom=array();
    $nom_avant='';
     
    While ...{
    ...
            $nom_maintenant= $nom[$i];
    	if($i%3==0){
    		if( ($nom_avant) == ($nom_maintenant)) {
    			$i++;
    		}else{
    			fwrite(...);		
    		}
    	}
     
      ...
      $nom_avant=$nom_maintenant; 
    }

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Par défaut
    merci pour votre réponse

    J'ai un soucis de undefined offset dès que j'associe le nom à la ligne (avec $i)
    j'ai également essayé de passé par un autre compteur, sans succès

  9. #9
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    soit tu initialise ton $i a la mauvaise valeur (trop basse?) soit tu a un <= qui devrait ete un <
    Enfin c'est souvent ce type d'erreur, il cherche un $nom avec un $i trop grand ou trop petit, en tout cas non défini.

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/06/2009, 19h36
  2. Insérer des en-têtes dans tous ses fichiers
    Par nako dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/09/2007, 16h18
  3. [SOLARIS] découpage de Fichiers de 3Go
    Par franchet dans le forum Solaris
    Réponses: 4
    Dernier message: 17/04/2007, 15h24
  4. [C#] Pb de découpage de Fichier
    Par mimibobo dans le forum C#
    Réponses: 4
    Dernier message: 25/10/2006, 15h46
  5. découpage de fichier image + texte
    Par dirty_boy dans le forum C
    Réponses: 8
    Dernier message: 13/03/2006, 19h42

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