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 :

[Tableaux] Récupérer données d'un fichier txt


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut [Tableaux] Récupérer données d'un fichier txt
    Bonjour,
    voilà j'ai mon code php suivant qui après avoir renommer le fichier .ktl en .txt, doit afficher son contenu. Le problème c'est que ça ne m'affiche que "d" alors que le fichier est composé de 12 lignes de 3 champs chacune. Je veux récupérer les données du fichier pour, ensuite, les mettre dans une base de données.
    Voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $fichier="donnees.ktl";
    $fichier_txt=str_replace('.ktl','.txt',$fichier);
     $total = count($fichier_txt); 
    for($i = 0; $i < $total; $i++) 
    {
    echo $fichier_txt[$i]; 
    }
    Merci d'avance.
    Bonne journée.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Sauf erreur de ma part $fichier_txt est une chaine de caractère, donc un élément unique, et non un tableau. Ce qui fait que la fonction count doit renvoyer 1. Et en prenant uniquement le premier élément d'une chaine de caractères, tu récupères la première lettre.
    D'où d.

    Pour lire le fichier, je te conseille file
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonjour,
    comme l'a dit Celira, vous confondez avec les tableaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
      $fichier = 'donnees.ktl';
      $fichier = str_replace('.ktl', '.txt', $fichier);
     
      $contenu = file_get_contents($fichier);
     
      echo $contenu;
     
    ?>
    Mais je doute que cela fonctionne car le fichier 'donnees.txt' n'existe surement pas.

    Cordialement,
    DaRiaN.

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    J'ai fait comme vous m'avez dit (j'avais déjà essayé) mais il me met une erreur:
    Warning: file_get_contents(donnees.txt) [function.file-get-contents]: failed to open stream: No such file or directory in C:\wamp\www\testlecture.php on line 5
    et je pense que c'est effectivement parce que le fichier n'existe pas mais dans ce cas comment faire.
    Peut-être qu'avant il faudrait que je copie le fichier .txt dans un dossier (je sais pas comment on fait, je sais qu'il y a la fonction copy() mais j'ai essayé de l'appliquer mais ça fonctionnait pas!).
    Merci!

  5. #5
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    str_replace ne va pas renommer le fichier mais unique retourner une chaine de caractère.

    Quelle est l'utilité de le renommer d'ailleurs ? l'extension n'a aucune incidence sur sa lecture. Les extensions ne sont là que pour donner une indication visuelle.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo file_get_contents('donnees.ktl');

    (Si j'ai bien compris)

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    ba moi aussi je pensais que l'extension n'avait pas d'importance mais visiblement si puisque quand je teste les programmes avec un fichier .txt, ça fonctionne et quand je teste avec un .ktl ça ne fonctionne pas!

    Pour tester mieux le truc et savoir si ça ne fonctionne vraiment pas, il faudrait que j'aille chercher les fichiers ktl dans leur dossier d'origine (là, j'en ai copié un sur mon pc, ça change peut-être quelque!). Les fichier se trouve sur un serveur distant dans le dossier dont le chemin est F:\Production\Working\mef_ktl\outfile.
    J'avais fait un truc comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $link = mysql_connect("192.168.1.6", "##", "###") or die("Impossible de se connecter : " . mysql_error());
    $handle = @opendir("F:Production/Working/mef_ktl/outfile/"); 
    while ($file = @readdir($handle)) {
    echo $file."<BR>"; 
    }
    @closedir($handle);
    ?>
    ça fonctionne dans le sens où je n'ai pas d'erreur ùais ça ne m'affiche rien, il ne rentre pas dans la boucle!
    Merci d'avance de votre aide!
    Bonne journée

    EDIT: Le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo file_get_contents('donnees.ktl');
    fonctionne très bien, désolé!!!

    Merci beaucoup à tous!
    Bonne journée!

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

Discussions similaires

  1. Récupérer données d'un fichier txt (Open Data)
    Par Macmachi dans le forum VB.NET
    Réponses: 14
    Dernier message: 29/11/2013, 19h53
  2. Récupérer données d'un fichier .txt
    Par fredhali2000 dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2008, 19h28
  3. Récupérer données d'un fichier txt
    Par kakuzu dans le forum Général Java
    Réponses: 6
    Dernier message: 08/04/2008, 15h36
  4. Réponses: 6
    Dernier message: 20/01/2008, 16h32

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