Olá! Monday, 16 de June de 2025.



Dicas CódigoFonte.net
Wednesday, 16 de March de 2005

Trabalhando com arquivos em PHP

Iae pessoal, tudo beleza?

Hoje vamos aprender um pouco sobre como ler e excluir linhas de arquivos TXT usando o PHP.

É muito simples, basicamente vamos trabalhar muito com arrays e depois o salvaremos no arquivo. Muitas pessoas preferem modificar diretamente no arquivo, mas assim, caso este esteja sendo usado por outro processo, poderá ser danificado ou os dados não serem salvos corretamente. Vamos lá!

Conteúdo do meuarquivo.txt

1|Meu nome|Meu site|Olá pessoal 2|Meu nome1|Meu site|Olá pessoal 3|Meu nome2|Meu site|Olá pessoal 4|Meu nome3|Meu site|Olá pessoal 5|Meu nome4|Meu site|Olá pessoal

Lendo linhas do array:

Primeiro, vamos colocar todo o arquivo num array. Use o seguinte código:
$meuArray = file("nomedoarquivo.txt"); // coloco todo o arquivo num array

Vamos excluir a linha que tenha o primeiro valor do array igual a 3. Para isto, temos que ler cada linha do array e fazer um "explode" delas, separando os "|" como se fosse em colunas.
Depois, faremos um [cfIF[/cf] perguntando se a coluna desejada é igual ao valor que queremos: 3

for($n=0; $n < count($meuArray); $n++) { // enquanto que a variável $n for menor que o número de linhas do array, incremento ($n + 1). $cadaLinha = explode("|", $meuArray[$n]); // crio outro array que possua as colunas (de acordo com o explode) da linha $n do $meyArray if($cadaLinha[0] == 3) { echo "Meu nome: $cadalinha[1] - Site: $cadalinha[2]"; // imprimo o que desejo } } // fecho o for

Excluindo linhas do array e salvando nos arquivos:

Faremos a mesma lógica de ler as linhas, sendo que a única diferença é que ao invés de ser igual a 3, ele gravará apenas se for diferente.

$meuArray = file("nomedoarquivo.txt"); // coloco todo o arquivo num array $arrayModificado = array(); // crio um array vazio.

for($n=0; $n < count($meuArray); $n++) { // enquanto que a variável $n for menor que o número de linhas do array, incremento ($n + 1). $cadaLinha = explode("|", $meuArray[$n]); // crio outro array que possua as colunas (de acordo com o explode) da linha $n do $meyArray if($cadaLinha[0] <> 3) { // se o valor da coluna 0 for diferente de 3, executo $arrayModificado[] = $meuArray[$n]; // coloco no outro array, que será salvo, os valores do array inicial. } } // fecho o for

Depois é só salvar o array no arquivo, incluindo cada linha do array já modificado:

$bufferArquivo = fopen('nomedoarquivo.txt',"w"); // abro arquivo somente para escrita, excluo suas linhas e coloco o ponteiro no começo. for($n=0; $n < count($arrayModificado); $n++) { // enquanto que a variável $n for menor que o número de linhas do array, incremento ($n + 1). fwrite($bufferArquivo, $arrayModificado[$n]); // gravo esta linha do array no arquivo } // fecho o for fclose($bufferArquivo); // fecho o arquivo.

Você pode pensar, mas porque não faço apenas um FOR e já gravo no arquivo?
Como falei no começo, este procedimento fará com que o arquivo possa ser danificado, caso algum outro processo tente gravá-lo. Então, é melhor trabalhar com o array e apenas depois de modificado o desejado, salvá-lo no arquivo.

Com este exemplo da exclusão, você poderá ainda adaptá-lo e editar uma linha específica.

Bom, por hoje é só.

Até mais pessoal.

[]s

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010