Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2011, 21h26   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 24
Points : 4
Points : 4
Par défaut Ecrire dans un fichier à une ligne donnée

Bonsoir à tous, ma question est sans doute très béte mais je ne comprends.

Voilà je souhaite écrire dans un fichier à une certaine ligne.

Cette ligne est récupéré par une boucle qui test si la ligne actuelle est ce que l'on cherche.

Puis j'effectue un fgets dans un for pour me positionner après cette ligne et là j'écris ce que je souhaite.

Malheuresement rien ne ce passe..

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$fichier = fopen('bdd/membres.ini', 'a+');
 
$source_array = parse_ini_file($fichier, true);
foreach($source_array as $ligne  => $valeur )
	{
	$compt = $compt + 1;
	if ($ligne == $_POST['username'])
	{
		$Lig = $compt; //Recupération du numéro de ligne où se trouve le pseudo
	}
	}
 
for ($i = 0 ; $i <= $Lig ; $i++) //On lit les lignes jusqu'a arrivé a la ligne que l'on chercher
{ $texte = fgets($fichier); } //On place donc le curseur a la fin de la ligne
 
$chaine="nom=".$nom."\r\n prenom=".$prenom."\r\n age=".$age."\r\n email=".$email."\r\n password=".$cmdp."\r\n";
fwrite($fichier,$chaine); // Et on écrit
fclose($fichier);
Merci..
Matt014 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 01h17   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

il y a plus simple : récupérer le contenu du fichier dans un tableau, modifier ce tableau puis le réinjecter dans ton fichier.

Un code vite fait :

Code php :
1
2
3
4
5
6
7
 
$fichier = file('C:\test.txt');
$indiceInsertion = 1;
 
array_splice($fichier, $indiceInsertion, 0, "une insertion !\r\n");
 
fwrite(fopen('C:\test.txt', 'w'), implode($fichier));
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 18h22   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 24
Points : 4
Points : 4
Le $indiceInsertion correspond à la ligne où au numéro du caractére?

Et comment également effacé ce qui suit?
Mon fichier ini ce construit comme ceci

[Pseudo]
nom : XX
prenom : XX
pass : XX
age : XX

J'aimerais donc pourvoir trouvé le "pseudo" et ensuite modifier les lignes qui suivent.
Matt014 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 18h28   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par Madfrix Voir le message
fwrite(fopen('C:\test.txt', 'w'), implode($fichier));
[/CODE]
fwrite, fopen : plutôt file_put_contents

sinon en stream c'est faisable mais il faut réécrire les nouvelles lignes, si l’insertion est a faire vers la fin pas de ca sera rapide, l'inverse moins, mais ça prendre toujours moins mémoire que de tout refaire
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 21h11   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Citation:
Envoyé par stealth35 Voir le message
fwrite, fopen : plutôt file_put_contents
Exact il était tard

Sinon pourquoi ne pas utiliser un fichier xml ? Ce serait quand même plus facile
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h23.


 
 
 
 
Partenaires

Hébergement Web