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.
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.
Il faut que tu lise le fichier et que tu change manuellement la chaine que tu veux remplacer !
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 çà ?
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 !
voila ou j'en suis !
J'arrive a trouvé la ligne que je veux modifier.
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; } }
Une ligne correspond a ceci :
Je voudrais mettre a la place du 1, un 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 1 | 473 | 8 | £ùdo | admin | 1210348599 | 127.0.0.1 | plop
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 ??
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager