par
jpaul » 21 sept. 2006, 14:43
Salut,
ben il suffit juste de compléter la fonction que je t'ai proposée en lui ajoutant un paramètre optionnel.
prenons h pour head (à partir du début)
et b pour bottom (avant la fin)
Heu... tu peux remplacer
h par
d pour début et
b par
f pour fin (je te laisse adapter)...
ca donne :
Function InsertInFile($FileName, $line, $InsertString, $from="h") {
$fp = fopen("MyTmpFile.txt", 'w');
$Tableau=file($FileName);
$l=0;
switch ($from) {
case "b":
case "B":
$limit=count($Tableau)-$line;
break;
default:
case "h":
case "H":
$limit=$line;
break;
}
while ($l<$limit) {
fwrite($fp, $Tableau[$l]);
$l++;
}
fwrite($fp, $InsertString);
while ($l<count($Tableau)) {
fwrite($fp, $Tableau[$l]);
$l++;
}
fclose($fp);
unlink($FileName);
rename("MyTmpFile.txt", $FileName);
}
Pour mettre 3 lignes avant la fin :
InsertInFile("test.txt", 3, "Truc\r\nBidule\r\n", "B");
Salut,
ben il suffit juste de compléter la fonction que je t'ai proposée en lui ajoutant un paramètre optionnel.
prenons h pour head (à partir du début)
et b pour bottom (avant la fin)
Heu... tu peux remplacer [b]h[/b] par [b]d[/b] pour début et [b]b[/b] par [b]f[/b] pour fin (je te laisse adapter)...
ca donne :
[php]Function InsertInFile($FileName, $line, $InsertString, $from="h") {
$fp = fopen("MyTmpFile.txt", 'w');
$Tableau=file($FileName);
$l=0;
switch ($from) {
case "b":
case "B":
$limit=count($Tableau)-$line;
break;
default:
case "h":
case "H":
$limit=$line;
break;
}
while ($l<$limit) {
fwrite($fp, $Tableau[$l]);
$l++;
}
fwrite($fp, $InsertString);
while ($l<count($Tableau)) {
fwrite($fp, $Tableau[$l]);
$l++;
}
fclose($fp);
unlink($FileName);
rename("MyTmpFile.txt", $FileName);
}
[/php]
Pour mettre 3 lignes avant la fin :
[php]InsertInFile("test.txt", 3, "Truc\r\nBidule\r\n", "B");[/php]