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 :

Ecriture fichier texte


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    96
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 96
    Par défaut Ecriture fichier texte
    Bonjour à tous,

    j'ai parcouru en long et en large le forum, et pour les besoins de mon site j'ai retenu ceci :

    Pour ajouter une ligne au milieu d'un fichier texte, il faut
    1) récupérer le contenu du fichier dans une variable
    2) modifier cette variable avec le nouveau contenu
    3) écraser l'ancien contenu avec le nouveau

    ----------------------------------------------------------------------------

    Mon fichier texte sera alimenté via un formulaire html.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    .
    .// fichier texte avec la liste éditable des dossiers
    .
    $dossier[]="08=2008";
    $dossier[]="09=2009";
    .
    .
    .
    Il faudrait par exemple insérer la ligne ou modifier une ligne existante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dossier[]="08=2008"; ==> $dossier[]="08=An 2008";
    Mon souci est le suivant, je n'arrive pas à récupérer la ou les lignes qui m'intéressent pour modifier le contenu de mon fichier.

    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
     
    $liste=file("fichier.txt");
    $fp=fopen("fichier.txt","w+");
    for($i=0;$i<count($liste);$i++)
    {
      if(strpos($liste[$i],'$dossier[]="08=2008";') > 1)
      {
        $liste[i].= ?
      }
    }
    foreach($liste as $ligne)
    {
      fwrite($fp,$ligne);
    }
    fclose($fp);
    Merci par avance pour vos conseils.

    Bonne soirée

    Perceuse-Killer

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    En fait, ton fichier texte doit juste être une sauvegarde des tes informations... les seuls traitements réels qui y sont effectués sont la lecture et l'écriture.

    Les modifications, ajouts et suppressions sont faits en PHP et non dans le fichier txt !

    Un fichier txt peut être récupérer dans un array(), c'est ce que tu fais... c'est dans cet array qu'il te faut faire les modifications, ajouts, suppression

    y'a un truc tout simple, c'est d'afficher de le résultat de file() dans un textarea... ensuite tu écris simplement le résultat du textarea dans ton fichier .txt mais c'est rarement possible quand c'est visible par plusieurs personnes ^^

    Voici un petit bout de code pour t'aider... les formulaires ne sont pas là, je force l'ajout, suppression et modification mais tu auras compris le principe
    Code php : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $fichier = "fichier.txt";
    $content = file($fichier); // contient un array() représentant chaque ligne du fichier
     
    // ajoutons des lignes (je ne fais pas de formulaire pcq pas envie donc j'ajoute direct ^^)
    $content[] = "voici une nouvelle ligne !\r\n";
    $content[] = "voici une nouvelle ligne !\r\n";
    $content[] = "voici une nouvelle ligne !\r\n";
    $content[] = "voici une nouvelle ligne !\r\n";
    $content[] = "voici une nouvelle ligne !\r\n";
    $content[] = "voici la dernière ligne !\r\n";
    // modifions des lignes
    $content[2] = "pitite ligne modifiée... attention, il s'agit de la numéro 3 !\r\n";
    // supprimons une ligne
    unset($content[3]);
     
    // Ecriture du fichier
    $fp = fopen($fichier,"w+");
    foreach ($content AS $v) {
    	fwrite($fp, $v);
    }
    fclose($fp);
     
    echo "<pre>";
    print_r($content); 
    /* pas besoin de refaire un file() car nous avons récupéré son contenu 
    et avons modifier $content pour ensuite l'écrire dans le fichier .txt,
    les 2 contiennent donc la même chose */
    echo "</pre>";
    ?>

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    96
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 96
    Par défaut
    Bonjour darkstar123456, et merci beaucoup pour tes conseils avisés.

    Cela fonctionne très bien, je vais maintenant jeter un oeil à la fonction preg_replace() car je ne suis pas censé savoir quels sont les numéros de ligne.

    Merci encore.

    Bonne journée.

    Cordialement

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

Discussions similaires

  1. [VBA-E]Lecture ecriture fichier texte
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/04/2007, 05h46
  2. Ecriture Fichier texte avec mot de passe
    Par JOS.FRAN dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/03/2007, 22h53
  3. Réponses: 2
    Dernier message: 08/11/2006, 20h57
  4. Scanner et ecriture fichier texte
    Par Dsphinx dans le forum Langage
    Réponses: 14
    Dernier message: 21/07/2006, 18h19
  5. [AS2] Lecture Ecriture Fichier Texte
    Par cpr0 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 13/09/2005, 11h22

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