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 :

Modifier un enregistrement dans un fichier texte


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Points : 70
    Points
    70
    Par défaut Modifier un enregistrement dans un fichier texte
    Bonjour,
    comment puis-je faire pour modifier un enregistrement dans un fichier.

    J'ai un fichier avec disons 5 lignes dedans.
    Je souhaite modifier le 1er champ "champ" de la 4eme ligne.
    Comment puis-je faire ?
    Avec quelle fonction ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Il faut que tu lise le fichier et que tu change manuellement la chaine que tu veux remplacer !

  3. #3
    Membre régulier
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Points : 70
    Points
    70
    Par défaut
    ui mais je ne veux pas le faire manuellement,
    jvoudrais le faire avec un formulaire.
    J'ai le numero de ligne, il me reste a parcourir le fichier pour modifier je pense.
    Mais comment je fais çà ?

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    il faut lire le contenu du fichier et le placer dans un tableau , de la tu sais donc dans quel index du tableau tu dois modifier , il te reste plus qu'a faire la modif et réécrire ton tableau dans ton fichier :

    LA fonction file() devrait t'aider !

  5. #5
    Membre régulier
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Points : 70
    Points
    70
    Par défaut
    voila ou j'en suis !
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    	if ( !empty($_GET[supp]) )
    	{
    		if ( ($_COOKIE['tsukai_statutchatbox'] == "admin") || ($_COOKIE['tsukai_statutchatbox'] == "modo")
    				|| $_SESSION['statut']=="admin" || $_SESSION['statut']=="modo")
    		{					
     
    			$fd = ouverture();//recherche du fichier à ouvrir
    			$bloc = file($fd);
     
    			$j = 0; $carac = 0;$k=0;
    			for ( $i = (count($bloc)-1) ; $i >= 0 ; $i-- )
    			{
    				$carac =$carac + strlen($bloc[$i]);
    				echo $carac;echo "<br />";
    				$verif = explode(" | ", $bloc[$i], 2);
    				if ( $verif[0] == "1" )//si le msg est validé, on met lal ligne dans un tableau
    				{
    					//echo "OK";echo "<br />";
    					$tab_mess[$j] = $bloc[$i];
     
    					//on parcourt maintenant le fichier jusqu'à qu'on trouve la ligne a modifier
    						for ( $k = 0 ; $k < count($tab_mess) ; $k++ )
    						{
     
    							//$contenu = explode(" | ", $tab_mess[$i], 8);
    							list($valid,$num_msg,$idmb,$pseudo,$statut,$datemsg,$ip,$message)=explode(" | ", $tab_mess[$k]);
     
    							if ( $num_msg == $_GET[supp] )//si le message correspond à celui qu'on veut supprimer
    							{			
    								//echo "trouvé";echo "<br />";
    								$lignetrouve=$tab_mess[$k];//on met la ligne dans une variable et on arrete la boucle
    								break;
    							}
     
    					$j++;
    				}
    				/*elseif ( $verif[0] == "0" )
    					echo "pas OK";echo "<br />";
    					$k++;*/
    			}
     
     
    			}
    			//echo $lignetrouve;
    			echo $carac;
    			if ( $lignetrouve )
    			{
    				$fdd = fopen($fd, "r+");
    				fseek($fdd, -($carac), SEEK_END);
    				fwrite($fdd, "0");
    				fclose($fdd);
    				$chaine_information = $config_info_mess_supp;
    			}
     
    		}
    J'arrive a trouvé la ligne que je veux modifier.
    Une ligne correspond a ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1 | 473 | 8 | £ùdo | admin | 1210348599 | 127.0.0.1 | plop
    Je voudrais mettre a la place du 1, un 0.
    une fois la ligne trouvé, il faut que j'utilise fseek pour me positionner au bon endroit mais j'arrive pas à bien calculer l'octet. J'ai utilisé une variable mais çà prend pas. Il me modifie toujours la 1ere ligne du fichier et me met un 0.
    Qqn pour m'aider svp ??

Discussions similaires

  1. Enregistrer dans un fichier text
    Par elhani dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2009, 12h35
  2. Modifier un enregistrement dans un fichier
    Par zykiel dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/02/2007, 22h23
  3. Réponses: 18
    Dernier message: 06/07/2006, 18h40

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