par
jpaul » 29 mars 2006, 07:19
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...
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]
<?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");
?>
[/php]
Et voici l'autre solution (avec fseek) :
[php]
<?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");
?>
[/php]
j'espère que ça pourra t'aider...