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 :

fgets et spaces ..


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut fgets et spaces ..
    Bonjour
    Je cherche à utiliser le fichier FANTOIR (répertoire des voies par communes et département)
    c'est un fichier texte (.txt) formaté de 150 caractères par ligne (7536536 lignes) disponible sur data.gouv.fr
    Les champs de la ligne sont définis en nombre de caractères (Début Fin Longueur)

    mon problème vient de ce formatage du fichier qui prévoit des champs "Filler" composés de plusieurs caractères "espace" :
    lorsque j'essaie de lire une ligne avec fgets() tous les caractères "espace" consécutifs sont réduit à un seul.
    Ce que je pourrais arriver à gérer : les champs "Filler" étant parfaitement identifiés.

    Par contre certains des champs situés avant et après un champ "Filler" peuvent aussi être vides ..
    et là c'est la cata : champvide + filler + champ vide = 1 caractère.
    et donc plus moyen d'analyser le contenu de ma ligne.

    d'où ma question :

    Existe t il une fonction permettant de ligne un fichier texte ligne par ligne en respectant les espaces (sans concaténer deux espaces consécutifs en un seul)?


    Merci de vos réponses

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    fgets() ne rassemble pas les espaces, tu interpretes mal ton résultat.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    Bon... ce n'est pas impossible, je débute

    Mais j'ai quand même créé un fichier texte rédigé comme suit :
    un espace entre deux mots
    deux espaces entre deux mots
    trois espaces entre deux mots
    (pas très visible à la prévisualisation, mais il il a bien deux (resp. trois) espaces entre chaque mots de la deuxième (resp. troisième) ligne

    puis j'ai utilisé fopen()
    puis une répétitive avec
    fgets()
    suivi d'un echo pour afficher la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $monfichier = fopen($strFileName, 'r'); //en lecture seule
    // 2 : Lire une ligne et l'afficher
    for ($i=1;$i<4;$i++){
    	$ligne=fgets($monfichier);
    	echo $ligne."<br/>";
    }
    Ce que j'obtiens c'est
    un espace entre deux mots
    deux espaces entre deux mots
    trois espaces entre deux mots
    et sur ce que j'obtiens il n'y a plus qu'un seul espace entre chaque mot.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Validé
    Il s'agit d'un problème d'affichage (?)

    Lorsque je place les champs dans une variable tableau, je trouve effectivement tous les caractères
    mais pas à l'affichage sous Firefox

    Problème réglé en ce qui me concerne.
    Merci ...

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 25/09/2005, 15h07
  2. Réponses: 6
    Dernier message: 13/09/2005, 18h59
  3. Notion de "table space"
    Par jh0483 dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/07/2005, 11h19
  4. gets ,fgets
    Par Zazeglu dans le forum C
    Réponses: 2
    Dernier message: 19/09/2003, 18h24
  5. Problème avec fgets et tube...
    Par tchingoo dans le forum POSIX
    Réponses: 5
    Dernier message: 22/08/2003, 17h03

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