( php ) fseek : Choisir la ligne à réécrire

Fermé
Profil bloqué - 20 juil. 2010 à 18:53
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 - 21 juil. 2010 à 13:24
Bonjour,

voila j'explique mon problème :
Je veux réécrire dans un fichier, à la ligne 2
alors je dois positionne le curseur virtuel. Y a-t'il une facon de choisir la ligne sur laquelle on veut écrire ?
$fichier_inventaire = fopen('save_inventaire.php', 'r+'); // ouverture du fichier \\
fseek($fichier_inventaire,'POSITIONNER_LE_CURSEUR_EN_NBR_DE_CARACTERES');
fputs($fichier_inventaire, ' $magique_pendentif_01 = 1 ');
fclose($fichier_inventaire);


ou une fonction faite pour ca aussi si vous connaissez?
Merci d'avance !


A voir également:

3 réponses

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
20 juil. 2010 à 22:30
Salut.

Tu pourrais lire tout le fichier et placer son contenu dans une variable.
Ensuite, tu sépares chaque ligne dans un array avec la fonction explode(), puis tu modifies la deuxième entrée.
Pour finir, tu réassembles le tout, et tu sauvegarde.

<?php
/* Lecture */
$fichier = fopen('fichier.txt','r+');
$chaine = '';
while(!feof($fichier)) {
    $chaine .= fgets($fichier, 4096);
}

/* Remplacement */
$lignes = explode("\n", $chaine);
$lignes[1] = 'Contenu de la seconde ligne';

/* Assemblage */
$chaine = '';
foreach($lignes as $ligne) {
    $chaine .= $ligne."\n";
}

/* Enregistrement */
fseek($fichier, 0);
fputs($fichier, $chaine);
fclose($fichier);
?>
3
Profil bloqué
21 juil. 2010 à 11:10
Ok, mais j'ai pas encore le niveau pour ca. Il n'y a pas un moyen de resoudre mon problème avec qlq chose d'encore plus simple stp ? Sinon je m'avancerais plus, mais mon projet avait pour but de savoir ce que je n'avais pas encore acquis et qui correspondait à mon niveau
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
Modifié par Leviathan49 le 21/07/2010 à 13:33
Sinon en plus simple :
$numero_ligne = 2; 
$contenu = "nouvelle ligne 2\n" 

$data = file("fichier.txt"); // lit le fichier et stocke chaque ligne dans un tableau 
$data[$numero_ligne] = $contenu; // change le contenu de la ligne 2 

$file = fopen("fichier.txt","w");  // sauvegarde les changements 
foreach($data as $ligne) 
{ 
    fwrite($file,$ligne);    
} 
fclose($file);
0