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 :

Effacement d'une ligne dans un fichier txt


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut Effacement d'une ligne dans un fichier txt
    Bonjour a tous, j'ai un formulaire ou j'upload des images pour une galerie photo, pour cette galerie photos je suis obliger de lui marquer le chemin de la photos dans un fichier txt, j'ai reussi a le faire grace a la fonction file_put_contents.

    Je suis entrain de faire le processus arriere que quand je supprime une photos sa m'efface cette ligne dans le fichier txt. Mais je ne trouve pas de fonction similaire a file_put_contents.


    Y a t'il une fonction pour suprimer une ligne dans un fichier txt?


    Mon script quand j'upload une image:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $image_destination = "../galerie/images_$user/".$_FILES['image']['name'];
     
    				$resultat = move_uploaded_file($_FILES['image']['tmp_name'],$image_destination);
     
    				$fichier = '../galerie/photos_'.$user.'.txt';
     
    				$contenu = 'images_'.$user.'/'.$_FILES['image']['name'].';'."\r\n";
     
    				file_put_contents($fichier, $contenu, FILE_APPEND);

    Celui pour supprimer une image:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    				$image_destination = "../galerie/images_$user/".$_FILES['image_sup']['name'];
     
    				unlink($image_destination);


    Merci d'avance!!!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    étant donné que ton image peux se trouver n'importe où dans ton fichier texte, je pense que la meilleure solution reste une lecture séquentielle de ton fichier et réécriture de celui-ci sans la ligne spécifiée.

    En gros, ca donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $array = file("ton_fichier.txt");
    $newfile = "";
    foreach($array as $line) {
       if ($line != $tonimage)
          $newfile .= $line."\n";
    }
    $file = fopen("ton_fichier.txt","w+");
    fwrite($file,$newfile);
    fclose($file);
    Le code est à tester, je l'ai juste tapé de méméoire pour te donner une idée de la démarche.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    J'vien de tester et sa ne fonctionne pas, j'ai pas de message d'erreur, une idée de ce qui peux clocher?


    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
    30
    31
    32
    33
    34
    35
    <div id="conteneur">
    <?php
     
    			$nom = $_SESSION['nom'];
     
    			$affiche=($_GET['nom']);
     
     
    					unlink($affiche);
     
    					echo "La suppréssion de l'image a bien été effectué";
     
    		echo '<SCRIPT LANGUAGE="JavaScript">
    								function redirect() {
    					window.location="sup_image_galerie.php"
    				}
    				setTimeout("redirect()",3000); 		  </SCRIPT>';
     
    				$array = file("../galerie/photos_$nom.txt");
    				$newfile = "";
    				foreach($array as $line) {
    				   if ($line != $affichage)
    					  $newfile .= $line."\n";
    				}
    				$file = fopen("../galerie/photos_$nom.txt","w+");
    				fwrite($file,$newfile);
    				fclose($file);
     
     
     
     
     
    ?>
     
    		</div>

  4. #4
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Ce ne serait pas à cause de ta fonction redirect() en javascript ? A vue de nez sans rester, ça va te rediriger vers une autre page sans continuer la suite du script PHP.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    J'ai mi le Javascript a la fin, c'est clair que c'est logique.

    Par contre toujours pas de changement, pourtant quand je regarde la date du fichier texte, il est bien recrée, mais la ligne de la photo qui a été supprimé est toujours reecrite...

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <div id="conteneur">
    <?php
     
    			/*transfert de la variable de session nom dans une variable */
     
    			$nom = $_SESSION['nom'];
     
    			/*recupere la valeur du champ par la variable GET*/
     
    			$affiche=($_GET['nom']);
     
     
    					/* efface l'image grace au chemin qui a été stoqué dans la variable*/
     
    					unlink($affiche);
     
     
    				/*réecriture du fichier texte sans le chemin de l'image éffacé*/
     
    				$array = file("../galerie/photos_$nom.txt");
    				$newfile = "";
    				foreach($array as $line) {
    				   if ($line != $affiche)
    					  $newfile .= $line."\n";
    				}
    				$file = fopen("../galerie/photos_$nom.txt","w+");
    				fwrite($file,$newfile);
    				fclose($file);
     
     
    								echo "La suppréssion de l'image a bien été effectué";
     
    		echo '<SCRIPT LANGUAGE="JavaScript">
    								function redirect() {
    					window.location="sup_image_galerie.php"
    				}
    				setTimeout("redirect()",3000); 		  </SCRIPT>';
     
     
     
    ?>
     
    		</div>

Discussions similaires

  1. récupéré une ligne dans un fichier txt pour mettre dans msgbox
    Par fabrice44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/02/2008, 14h01
  2. Supprimer une ligne dans un fichier .txt
    Par lince102 dans le forum MATLAB
    Réponses: 12
    Dernier message: 31/01/2008, 10h19
  3. Modifier une ligne dans un fichier txt en java
    Par nihad510 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/10/2007, 22h08
  4. 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
  5. suprimmer une ligne dans un fichier .txt
    Par Totuch dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2007, 11h28

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