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 :

conseil lecture fichier proprement


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut conseil lecture fichier proprement
    Bonjour,

    je voudrais programmer un tant soit peu proprement (comprendre avec prévision des erreurs) l'ouverture, la lecture d'un fichier :

    $handle = fopen('fichier', 'r');
    while (!feof($handle)){
    $buffer = fgets($handle, 4096);
    }

    j'ai ici 2 fonctions php : fopen, fgets.

    Faut-il que je prévois le plantage éventuel de ces fonctions ou ai-je l'assurance que ces fonctions vont s'exécuter correctement?

    Merci de vos conseils

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, déjà vérifie que ton fichier existe, ça évitera une erreur ; un peu de doc sur fopen : http://www.php.net/manual/fr/function.fopen.php

    PS : n'oublie pas les balises [Code]

  3. #3
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Déjà il faut donner le nom d'un fichier avec son extension, mais je pense que c'est un problème de c/c.

    Sinon lorsque tu ouvres un fichier, il faut le fermer après !!!

    <?php

    $filename&#160;
    =&#160;'fichier.txt&#160;'&#160;;

    &#160;&#160;&#160;&#160;if&#160;(&#160;
    file_exists&#160;(&#160;$filename&#160;)&#160
    &#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;
    $handle&#160;=&#160;fopen&#160;(&#160;$filename&#160;,&#160;'r'&#160;)&#160;;
    &#160;&#160;&#160;&#160;
    $contents&#160;=&#160;fread&#160;(&#160;$handle&#160;,&#160;filesize&#160;(&#160;$filename&#160;)&#160&#160;;
    &#160;&#160;&#160;&#160;
    fclose&#160;(&#160;$handle&#160;)&#160;;
    &#160;&#160;&#160;&#160;}

    ?>

    Phpsyntaxcolor powered by decabodi.com
    perso je préfère fread() à fgets()... Question de goût.

  4. #4
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Citation Envoyé par Nesmontou
    PS : n'oublie pas les balises Code
    franchement entre :

    $handle = fopen('fichier', 'r');
    while (!feof($handle)){
    $buffer = fgets($handle, 4096);
    }

    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $handle = fopen('fichier', 'r');
    while (!feof($handle)){
    $buffer = fgets($handle, 4096);
    }
    et :

    $handle = fopen('fichier', 'r');
    while (!feof($handle)){
    $buffer = fgets($handle, 4096);
    }
    Vous voyez une différence ?

  5. #5
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Citation Envoyé par macbook
    Vous voyez une différence ?
    Dans ce cas, pourquoi as-tu utilisé la coloration du code pour quasiment le même nombre de lignes :

    Ca permet de montrer qu'il y a un (petit) bloc de code, ça coupe les lignes toutes noires, c'est beaucoup plus agréable à lire.

    Mais la question n'est pas là

    Sinon grinder59, le script de macbook est très bien et ses remarques pertinentes

  6. #6
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    test à l'ouverture du fichier + fermeture du fichier (avec extension), tout ça je le fais (même si dans mon exemple je le précise pas).
    Donc apparemment les tests sur la lecture des lignes, vous ne les faites pas et ovus ne faites que les tests aux grandes étapes (existence...).

    OK merci de vos conseils...

    @Nesmontou : Le script de macbook, tout bien qu'il soit, et le mien sont différents. Perso je lis ligne à ligne tandis que lui lis tout d'un seul coup....

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Citation Envoyé par grinder59
    @Nesmontou : Le script de macbook, tout bien qu'il soit, et le mien sont différents. Perso je lis ligne à ligne tandis que lui lis tout d'un seul coup....
    Perso, je pense que tu te compliques la vie et que tu multiplies le nombre d'erreurs possibles.
    Si tu es en PHP5, tu peux même utiliser file_get_contents(), ça réduit encore le code.

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

Discussions similaires

  1. Lecture fichier Word et remplacement paramètre
    Par Pfeffer dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/02/2005, 18h30
  2. [ifstream] pb lecture fichier non sequentielle
    Par bludo dans le forum SL & STL
    Réponses: 3
    Dernier message: 10/02/2005, 22h30
  3. [LG]probleme lecture fichier
    Par yp036871 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2004, 20h22
  4. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 19h53
  5. [langage] prob lecture fichier .txt
    Par martijan dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2003, 12h08

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