Para removeres uma linha de um ficheiro txt tens que:
1- Ler o ficheiro todo
2- deslocar-te até ela
3- Apaga-la
4- fechar o ficheiro
O que é uma linha?
Imaginemos que tens um txt com 5 linhas e queres apagar a linha 3. O que tens de fazer é contar os carriage returns. Carriage returns são caracteres colocados pela tecla return ou enter, invisiveis em muitos programas (ex: note pad)
//Para tal vamos abrir o ficheiro primeiro:
$abrindo = fopen ("contador.txt", "w+");
//Agora vamos ler todo o ficheiro:
while (!feof ($abrindo)) {
$todo= fgets($abrindo, 4096);
}
//Agora temos várias opçoes, podemos "navegar na string $todo e tentar axas os carriage returns "\n" ou podemos tentar saltar para a linha:
$linha3 = stream_get_line($todo, 4096,"\n" );
//vamos remover os dados da linha
fwrite($todo, str_replace("$linha3", ' ', $todo)."\n");
// fechar o ficheiro
fclose ($abrindo);
A linha fica em branco. Não testei, por isso depois diz-me alguma coisa se falhar
|