Décidément, je ne comprends rien de rien !!!
Voici un petit bout de code qui écrit quelques lignes puis en rajoute.
Première solution (en mode ligne à ligne) :
<?php
r// debut écriture de quelques lignes dans un fichier
$fp=fopen("fictest.txt", "w");
fwrite($fp,"ligne 1\n");
fwrite($fp,"ligne 2\n");
fwrite($fp,"ligne 3\n");
fwrite($fp,"ligne 7\n");
fwrite($fp,"ligne 8\n");
fwrite($fp,"ligne 9\n");
fclose($fp);
// relecture et affichage
$fp=fopen("fictest.txt", "r");
while(!feof($fp)) {
$ligne_lue=fgets($fp,1024);
echo "<BR>".$ligne_lue;
}
fclose($fp);
// He mais il manque les lignes 4, 5, 6 !!!
echo "<HR>Mince manque des lignes !!!<BR>On va les rajouter...<HR>";
// On va les ajouter...
// 1) on commence par renommer le fichier
rename("fictest.txt", "fictest_incomplet.txt");
// 2) on ouvre le fichier incomplet en lecture et un nouveau fichier en ecriture
$fp1=fopen("fictest_incomplet.txt", "r");
$fp2=fopen("fictest.txt", "w");
// on on relit tout en verifiant où on en est
while(!feof($fp1)) {
$ligne_lue=fgets($fp1,1024);
fwrite($fp2,$ligne_lue);
if (trim($ligne_lue) == "ligne 3") {
// il faut rajouter lignes 4, 5 et 6
fwrite($fp2,"ligne 4\n");
fwrite($fp2,"ligne 5\n");
fwrite($fp2,"ligne 6\n");
}
}
fclose($fp1);
fclose($fp2);
// relecture et affichage
$fp=fopen("fictest.txt", "r");
while(!feof($fp)) {
$ligne_lue=fgets($fp,1024);
echo "<BR>".$ligne_lue;
}
fclose($fp);
unlink("fictest_incomplet.txt");
?>
Et voici l'autre solution (avec fseek) :
<?php
// debut écriture de quelques lignes dans un fichier
$fp=fopen("fictest.txt", "w");
fwrite($fp,"ligne 1\n");
fwrite($fp,"ligne 2\n");
fwrite($fp,"ligne 3\n");
fwrite($fp,"ligne 7\n");
fwrite($fp,"ligne 8\n");
fwrite($fp,"ligne 9\n");
fclose($fp);
// relecture et affichage
$fp=fopen("fictest.txt", "r");
while(!feof($fp)) {
$ligne_lue=fgets($fp,1024);
echo "<BR>".$ligne_lue;
}
fclose($fp);
// He mais il manque les lignes 4, 5, 6 !!!
echo "<HR>Mince manque des lignes !!!<BR>On va les rajouter...<HR>";
// On va les ajouter...
// 1) on commence par renommer le fichier
copy("fictest.txt", "fictest_incomplet.txt");
// 2) on ouvre le fichier incomplet en lecture et un nouveau fichier en ecriture
$fp1=fopen("fictest_incomplet.txt", "r");
$fp2=fopen("fictest.txt", "r+");
$seek1 = fseek ($fp1, 24);
$seek2 = fseek ($fp2, 24);
// on rajoute nos lignes en priant pour que la valeur de seek soit la bonne...
fwrite($fp2,"ligne 4\n");
fwrite($fp2,"ligne 5\n");
fwrite($fp2,"ligne 6\n");
// on on lit la suite pour et on ecrit la fin
while(!feof($fp1)) {
$ligne_lue=fgets($fp1,1024);
fwrite($fp2,$ligne_lue);
}
fclose($fp1);
fclose($fp2);
// relecture et affichage
$fp=fopen("fictest.txt", "r");
while(!feof($fp)) {
$ligne_lue=fgets($fp,1024);
echo "<BR>".$ligne_lue;
}
fclose($fp);
unlink("fictest_incomplet.txt");
?>
j'espère que ça pourra t'aider...