Trabalhando com arquivos em PHP

Apesar de termos a possibilidade de trabalhar com banco de dados em PHP, existem situações em que um simples arquivo texto resolve o problema. Tratarei aqui das várias formas de abrir, ler e gravar um arquivo usando a PHP.

[ Hits: 70.875 ]

Por: Caio Filipini em 11/11/2002


Escrevendo e lendo arquivos



Agora que já sabemos como abrir e fechar um arquivo, precisamos conhecer as funções que manipulam esse arquivo. Primeiro, daremos uma olhada nas funções para escrita de dados de um arquivo.

fwrite(): Esta função permite escrever strings em um arquivo. Se os dados forem escritos com sucesso, fwrite() retorna o número de bytes escritos; caso contrário, retorna -1 (indicando erro). Ela tem a seguinte sintaxe:

fwrite(handle, string);
- handle: handle do arquivo onde os dados serão escritos;
- string: string a ser escrita no arquivo;

Exemplo:

<?php
$fp = fopen("./dados.txt", "w");
fwrite($fp, "Hello world!"); // grava a string "Hello world!" no arquivo
fclose($fp);
?>

fputs(): Esta função é semelhante à função fwrite() e funciona da mesma maneira.

Depois de escrevermos os dados no arquivo, precisamos ser capazes de ler os dados que acabamos de gravar. É exatamente isso o que iremos aprender agora, funções para leitura de dados de um arquivo.

fread(): Esta função permite ler strings gravadas em um arquivo. A sintaxe é a seguinte:

fread(handle, length);
- handle: handle do arquivo de onde os dados serão lidos;
- length: tamanho em bytes do buffer de leitura;

Exemplo:

<?php
$fp = fopen("./dados.txt", "r");
$text = fread($fp, 20); // lê 20 bytes do arquivo e armazena em $text
fclose($fp);
?>

fgets(): Esta função é usada na leitura de strings de um arquivo. fgets() lê "length - 1" bytes do arquivo. Se for encontrado o final da linha e o número de bytes especificados não tiver sido atingido, fgets() terminará a leitura no final da linha (ou no final do arquivo, se for o caso). Eis a sua sintaxe:

fgets(handle, length);
- handle: handle do arquivo de onde os dados serão lidos;
- length: tamanho em bytes do buffer de leitura;

Exemplo:

<?php
$fp = fopen("./dados.txt", "r");
$text = fgets($fp, 20);
fclose($fp);
?>

fgetc(): Esta função permite ler caractere por caractere de um arquivo. Seguem a sintaxe e um exemplo de utilização:

fgetc(handle);
- handle: handle do arquivo de onde os dados serão lidos;

Exemplo:

<?php
$fp = fopen("./dados.txt", "r");
do {
    $char .= fgetc($fp);
} while($char);
fclose($fp);
?>

file(): Esta função lê um arquivo completo, e armazena cada linha do arquivo como um elemento de um array. Depois de ler todo o conteúdo do arquivo, file() o fecha automaticamente, não sendo necessária uma chamada a fclose(); Vejamos a sintaxe:

file(filename);
- filename: nome ou caminho completo de um arquivo.

Exemplo:

<?php
$file_lines = file("./dados.txt");
echo "Primeira linha: " . $file_lines[0];
?>

Além dessas funções para leitura e escrita, existe ainda uma função bastante útil, que testa se o final do arquivo foi atingido. É a função feof(), que tem a seguinte sintaxe:

feof(handle);
- handle: handle do arquivo;

Exemplo:

<?php
$fp = fopen("./dados.txt", "r");
while(!feof($fp)) {
    $char .= fgetc($fp);
}
fclose($fp);
?>

É isso aí! Existem diversas outras funções em PHP para a manipulação de arquivo, inclusive para acesso aleatório. Porém, o intuito deste tutorial é mostrar a base da manipulação de arquivos. Aqueles que estiverem interessados em aprender o assunto mais a fundo, há uma referência de todas as funções da linguagem PHP no manual, disponível em http://www.php.net.

Página anterior    

Páginas do artigo
   1. Abrindo e fechando um arquivo
   2. Escrevendo e lendo arquivos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Gerando documentos PDF com a classe FPDF no PHP

PEAGLE: Serviço Web de busca indexada em seu servidor local

Enviar mensagem ao usuário trabalhando com as opções do php.ini

Organizando fotos de camêra digital

Upload de imagens com criação de thumbnails em PHP

  
Comentários
[1] Comentário enviado por lamss em 25/12/2002 - 17:00h

Estou começando a programar em PHP e essas dicas
são interessantes para os iniciantes nessa linguagem
de programação...
Valeu espeso ver mais dessas dicas aqui nesse site.

[2] Comentário enviado por bianorneto em 15/03/2005 - 18:48h

<?php
$fp = fopen("./dados.txt", "r");
do {
$char .= fgetc($fp);
} while($char);
fclose($fp);
?>

Parabéns pelo artigo, mas acho que na próxima página, a função fgetc você equivocadamente colocou (.=) e pelo menos no meu pc nao funcionou, somente funcionou depois que troquei colocando (=). Valeu.

[3] Comentário enviado por paulopugin em 17/04/2008 - 17:43h

Olá,
como faço para distinguir uma quebra de linha em arquivo de texto no php?

[4] Comentário enviado por viniciusmarcius em 20/06/2008 - 02:23h

POw car muito bom seu tuto...eu programo em c++ E TO TENTANDO ME ADAPTAR ao mundo web, com a ajuda de vocês será muito mais facil....abraços

[5] Comentário enviado por guiguix em 29/06/2008 - 11:50h

Olá queridos colegas doVOL, eu uso um Slack12 c/ Apache PHP e MySQL (que vem nele).... porém ocorre o seguinte:
O módulo PHP só reconhece a abertura "<?php" .... ou seja, ele não reconhece o "<?" ....
alguém pode me ensinar como alterar isso?
já baixei o livro do Craig, e o tal PHPTOTAL, e nada! Já abri os arquivos de configuração do php e não percebi nenhuma configuração do tipo.

[6] Comentário enviado por albertguedes em 24/07/2008 - 14:15h

guiguix , esse lance deve ser no apache, e não no php.

[7] Comentário enviado por eduardo.azevedo em 31/07/2008 - 13:38h

Olá,
Sou iniciante, em meus testes ja consegui fazer a leitura de um arquivo e apresenta-lo em uma pagina, contudo eu gostaria de manipular a informação que quero que apareça.
tipo.. quero que apereça em um determinado "form" uma posição e tamanho deste arquivo.
Você ja fez isto alguma vez ?

Um abraço.

[8] Comentário enviado por eduardo.azevedo em 31/07/2008 - 13:41h

Sou iniciante, em meus testes ja consegui fazer a leitura de um arquivo e apresenta-lo em uma pagina, contudo eu gostaria de manipular a informação que quero que apareçe.
tipo.. quero que apereça em um determinado "form" uma posição e tamanho deste arquivo.
Você ja fez isto ?

Um abraço.

[9] Comentário enviado por luizbarcelos em 08/05/2009 - 22:26h

Olá,
Você deveria escrever um livro para iniciantes em php.
Gostei do seu tutorial, explica o comando com suas chaves,
Isso é legal.

Abraços Luiz.

[10] Comentário enviado por C.A.R.O em 20/04/2010 - 13:42h

Muito bom o artigo , estou usando ele para fazer um site tipo como o youtube :D , valeu ai por compartilhar .

<?php
$fp = fopen("./teste.php", "a+");// usando o a+ adiciona a informação ao final do arquivo
fwrite($fp, "\nHello world!"); // grava a string "Hello world!" no arquivo
fclose($fp);
?>


hehehehh

[11] Comentário enviado por alex_arantes8 em 11/04/2012 - 22:25h

boa noite preciso de uma ajuda se possivel em PHP urgente ,.
tenho o seguinte problema.
arquivo1- contem varias linha como abaixo
78900000
78911111
78922222
certo, ok.
arquivo2. contem varias linha tambem segue abaixo
789355555
789644444
789733333
porem preceiso checar o arquivo dois(2) com o arquivo (1) se os 3 caracteres primeiro for igual gravo a linha do arquivo 2 dentro do arquivo 1 ficando assim
arquivo 1 depois que rodar o scrip.
789355555
789644444
789733333
Ugente


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts