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 :

Suppression d'une ligne dans un txt : via un tableau ?


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Suppression d'une ligne dans un txt : via un tableau ?
    Bonjour à tous,

    Soit un fichier txt composé de lignes du même format :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    jean|durand|jean@free.fr
    claude|dupond|claude@free.fr
    joe|black|joe@free.fr
    phil|knight|phil@free.fr
    Je voudrais, par exemple, supprimer la ligne joe|black|joe@free.fr, sachant que je connais ces 3 variables. Ayant parcouru divers forums, j'ai lu qu'il était plus simple de stocker les données dans un tableau, d'effacer le txt, de supprimer la ligne voulue dans le tableau, puis de réecrire le restant dans un nouveau txt. J'ai donc écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $fichier = "test.txt";
    $tab = array();
    $tab = file($fichier);
     
    unset($tab[array_search("joe|black|joe@free.fr", $tab)]);  
     
    echo "<pre>";
    print_r($tab);
    echo "</pre>";
    //puis réecriture dans un txt
    Oui, mais voila...au print_r($tab), la ligne n'a pas du tout disparue !:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Array
    (
        [0] => jean|durand|jean@free.fr
        [1] => claude|dupont|claude@free.fr
        [2] => joe|black|joe@free.fr
        [3] => phil|knight|phil@free.fr
    )
    Merci du coup de main et bonne journée.

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Salut,

    Il n'y aurait pas des espaces au début ou fin de tes lignes dans ton fichier ?

    Applique un trim() sur les éléments de ton tableau avec array_map() pour vérifier.

  3. #3
    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
    Il faut prendre la peine de debuguer :
    que vaut array_search("joe|black|joe@free.fr", $tab) ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    merci pour vos réponses.

    J'appplique trim() sur les éléments du tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    function trim_value(&$value) {
         $value = trim($value); 
    }
     
    array_walk($tab, 'trim_value');
    Aucun changement sur le print_r(). L'élément n'a pas été effacé (c'est le 1er enregistrement qui s'efface).

    Quant à array_search("joe|black|joe@free.fr", $tab), et bien effectivement, ça ne retourne rien...

  5. #5
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bon, bon...

    Le but était de supprimer une ligne dans un txt...
    J'y suis finalement parvenu sans passer par un tableau.


    Donc c'est réglé.
    Merci.

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

Discussions similaires

  1. Suppression d'une ligne dans une table via JavaScript
    Par Nicocarbo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/05/2014, 14h22
  2. Suppression d'une ligne dans un fichier .txt
    Par hamidou sow dans le forum C++
    Réponses: 9
    Dernier message: 24/04/2014, 22h43
  3. Suppression d'une ligne dans un fichier txt
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/07/2007, 17h58
  4. Réponses: 5
    Dernier message: 10/11/2006, 11h00
  5. [VB6]Suppression d'une ligne dans un fichier
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/02/2006, 11h20

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