Olá, estou buscando a forma de mudar o valor de uma linha em um txt sem ter que gerar novamente o txt por completo.
Seria como fazer um update em sql.. muda a linha em concreto segundo a "id" por exemplo.
Suponhamos que o conteúdo no txt é:
lalalala res nose lala
cortaraki iee ueue llla
232323 ieieie ooo aaa
..e quero que a segunda linha "cortaraki" mude o conteúdo. Então, meu php é:
$filename = "prova.txt";
$dataFile = fopen( $filename, "r+" );
if ( $dataFile )
{
while (!feof($dataFile))
{
$buffer = fgets($dataFile, 4096);
$iezoo = split(' ',$buffer);
if ($iezoo[1] == "cortaraki"){
fwrite($dataFile, "outracoisa um dois tres");
}
else{
//nada...
}
}
fclose($dataFile);
}
Porém, só consigo criar uma 4a linha, não me modifica essa em questão.
Poderiam me dar uma mão?
Para começar, o uso de arquivos é muito tedioso e te toma muito tempo.
Sugiro que use uma tabela em banco de dados.
Por outro lado se decidir continuar com o uso de arquivos dê uma olhada a essas duas funções:
file_get_contents: para obter todo o conteúdo do arquivo. referência: http://mx.php.net/function.file-get-contents
str_replace: para substituir a cadeia que você quiser. referência: http://mx.php.net/str_replace
Outra solução alterna seria:
/*1 obtem todo o conteudo*/
while (!feof($dataFile))
{
$buffer[] = fgets($dataFile, 4096);
}
/*Substitua a linha N */
$buffer[N] = "Outra coisa";
Por Pablo Rodriguez