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

EDI, CMS, Outils, Scripts et API PHP Discussion :

afficher un élément sur deux dans un fichier texte


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut afficher un élément sur deux dans un fichier texte
    J'ai de nouveau un léger soucis, j'ai besoin de supprimé plusieurs ligne de mon fichier texte sachant que je connais les indices à supprimer.
    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
     
    foreach($contenu_array as $cle=>$valeur)
        {
     
     
        if(!empty($_POST["$cle"]))
       { echo $valeur;
          echo$cle;   
     
      //si checkbox 1 et 3 coché  echo$cle affiche 0 et 2, correspondant bien //aux indice que je veux supprimer dans mon fichier .txt
     
     
       //ici j'ouvre mon fichier
        //je veux supprimer les lignes de mon tableaux correspondant à $cle
     
     
       }
    }

    la ou sont les commentaires je pensé mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $fichier = fopen("photoheber.txt","r+");
      unset($fichier,$cle);
    fclose($fichier);
    Cependant quand je réouvre mon fichier rien n'a changé, aucun texte correspondant n'est supprimé

    D'ou cela pourrait venir?

    merci d'avance

  2. #2
    Membre expérimenté
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Par défaut
    Les variables qui te permettent d'accéder au fichier sont des copies du contenu, les modifier ne sert à rien (et en plus foreach fait une nouvelle copie).
    Le plus simple serait de lire le fichier avec file() (qui conserve les sauts de lignes dans le texte), de le parcourir avec un for classique, de remplacer les lignes à supprimer par "", puis de réécrire avec implode() et file_put_contents.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut
    oui mais je dois rester dans ma boucle pour effectuer cela, car je récupére les ligne uniquement si les checkbox sont cochés.
    Si j'effectue ces opération à l'extérieur alors je récupérerais pas les bonne valeur à supprimer

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
       $fichier = fopen("photoheber.txt","r");
     
       $a = str_replace("$valeur","",$fichier); 
    $b=implode($a,$contenu_array);
    fopen("photoheber.txt","r");
    fwrite($file,$b);
       fclose($fichier);
    voila ce que j'ai tenté d'insérer dans la boucle ou j'avais mis le commentaire dans le premier message, mais cela ne marche toujours pas l'erreur affiché est:


    Warning: fwrite(): 4 is not a valid stream resource in C:\wamp\www\photo2\validphoto.php on line 45
    ./PHOTOHEBER/1731.jpg
    Warning: fwrite(): 7 is not a valid stream resource in C:\wamp\www\photo2\validphoto.php on line 45
    ./PHOTOHEBER/100_0926.JPG
    Warning: fwrite(): 10 is not a valid stream resource in C:\wamp\www\photo2\validphoto.php on line 45
    ./PHOTOHEBER/100_0598.JPG

    Bonne soirée et merci d'avance

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 323
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 323
    Billets dans le blog
    17
    Par défaut
    Je te recommande de suivre les indications de Caerbannog.
    Doc de file( ) : http://fr.php.net/file
    implode( ) : http://fr.php.net/implode
    file_put_contents : http://fr.php.net/file-put-contents

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut
    C'est ce que j'ai fais étant donné que un file put contents correspond à l'ouverture, l'écriture et la fermeture d'un fichier! donc cela reviens au même.
    Si je post, c'est justement parce que cela fais plusieurs heures voir plusieurs jours que je cherche et que je ne parviens pas malgrès des centaines de test et de variantes à obtenir ce que je souhaite.

Discussions similaires

  1. Styliser un élément sur deux dans une boucle while
    Par skywhi dans le forum Langage
    Réponses: 6
    Dernier message: 12/12/2013, 13h59
  2. Réponses: 5
    Dernier message: 08/01/2013, 17h56
  3. Afficher un résultat sur deux critères du même champ
    Par julien6660 dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 11h30
  4. Réponses: 6
    Dernier message: 23/02/2006, 12h09
  5. le sous formulaire s'affiche une fois sur deux
    Par Math dans le forum Access
    Réponses: 16
    Dernier message: 10/10/2005, 15h25

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