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 :

Supprimer une donnée d'un fichier txt


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 6
    Points
    6
    Par défaut Supprimer une donnée d'un fichier txt
    Bonjour à tous,

    Je souhaite suprimer une donnée dans un fichier texte. Voici l'allure de son contenu:

    donnée1:donnée2:donnée3: ...
    Donc séparé par des ":"

    Et voici le script de lecture:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $fp=fopen("$file","r");
    	$contenu=fgets($fp,4096);
    	fclose($fp);
    	$contenu_array = explode(":",$contenu);
    Je pense que l'idée serait de modifier toute la chaine (ou la valeur du tableau?) et de réécrire le tout dans le fichier en faisant par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $fp=fopen("$file","w+");
    fwrite($fp,$new_modif);
    fclose($fp);
    Quelles fonctions dois-je utiliser pour arriver à mes fins?? Je me perd avec celles du style str_replace() ereg() strtr()...

    Pouvez-vous m'aider??

    Merci et à bientôt!

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    je confirme que dans ton cas, tu dois lire le contenu du fichier en entier et ensuite réécrire le contenu
    par contre je n'ai pas compris ta question, tu ne sais pas comment traiter les données pour supprimer ce que tu veux ? donne nous plus de détails

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse.

    Oui, je me suis peut-être mal exprimé. Je voudrais par exemple supprimer la donnée2 de mon fichier de sorte à avoir en sortie:
    donnée1:donnée3: ...
    et en gardant bien-sur les séparations ":" entre chaque données

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 92
    Points : 102
    Points
    102
    Par défaut
    Tu as presque fini, tu as mis les données lues dans un tableau.
    Tu parcours ton tableau, tu testes les valeurs et tu les affectes à un autre tableau
    C est ce nouveau tableau que tu écrit dans le fichier :wink:

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    OK, mais quelle fonction dois-je utiliser pour ça, auriez-vous un exemple?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 92
    Points : 102
    Points
    102
    Par défaut
    la question est qu'elle est la valeur à supprimer.
    Par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $valeurAsupprimer="aaa";
    $new_modif=array(); 
    for($contenu_array as $val)
    {
     if($val!=$valeurAsupprimer)
       $new_modif[]=$val; 
    }

  7. #7
    Membre confirmé
    Avatar de ilood
    Inscrit en
    Mars 2005
    Messages
    468
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 468
    Points : 529
    Points
    529
    Par défaut
    Bonjour

    Une fois que tu as récupéré les données dans ton tableau tu peux utiliser ces fonctions (avec array_splice par exemple), les combiner...
    Ensuite tu effaces ton fichier et réécris les données du nouveau tableau.
    Qui aime bien, charrie bien

  8. #8
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Bon voici le bout de script interessant:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    if(file_exists("$file"))
       	{
    	$fp=fopen("$file","r");
    	$contenu=fgets($fp,4096);
    	fclose($fp);
    	$contenu_array = explode(":",$contenu);
    	}
     
     
     
          $info_hash = (string)$_GET['info_hash'];
     
    $combien=count($contenu_array);
    for ($i=0;$i<=$combien;$i++) {
    echo	$contenu_array[$i];
    if ($info_hash==$contenu_array[$i])
    	{
     
     
     
    //On efface la valeur hash du fichier user.txt
     
    $new_modif=strtr($info_hash, "", $contenu); // <-------------------------------
     
     
     
    $fp=fopen("$file","w+");
    fwrite($fp,$new_modif);
    fclose($fp);
    J'ai mis en evidence la ligne que j'utilise mais c'est sur une chaîne et non un tableau. Façon ça marche pas!!

    Comment modifier une valeur dans le tableau puis tout remettre dans le fichier??

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2008, 12h01
  2. Supprimer une ligne dans un fichier .txt
    Par lince102 dans le forum MATLAB
    Réponses: 12
    Dernier message: 31/01/2008, 10h19
  3. [Configuration] Supprimer une donnée dans un fichier
    Par cirtey dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 07/02/2007, 16h36
  4. supprimer une ligne d'un fichier txt
    Par warubi dans le forum C++
    Réponses: 5
    Dernier message: 10/01/2007, 18h57
  5. Remplacer / Supprimer des données dans un fichier txt
    Par PedroBD dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2006, 13h33

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