Pular para o conteúdo

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.
Caio Filipini operator
Hits: 71.821 Categoria: PHP Subcategoria: Manipulação de Arquivos
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Abrindo e fechando um arquivo

Ao trabalhar com arquivos, no mínimo duas operações devem ser realizadas: abrir e fechar o arquivo. Programadores que conhecem a linguagem C e já trabalharam com arquivos se sentirão em casa.

Para abrir um arquivo, precisamos utilizar a função fopen(), que tem a seguinte sintaxe:

fopen(filename, mode, [use_include_path]);

filename: pode ser simplesmente um nome, ou um caminho completo. Exemplos: "arquivo.txt", "./arquivo.dat", "/data/data.txt".

mode: especifica o modo de abertura, ou seja, se o arquivo deve ser aberto para leitura, escrita, etc. Modos de abertura:
- r: abre o arquivo no modo somente leitura e posiciona o ponteiro no início do arquivo; o arquivo já deve existir;
- r+: abre o arquivo para leitura/escrita, posiciona o ponteiro no início do arquivo;
- w: abre o arquivo no modo somente escrita; se o arquivo já existir, será sobrescrito; senão, será criado um novo;
- w+: abre o arquivo para escrita/leitura; se o arquivo já existir, será sobrescrito; senão, será criado um novo;
- a: abre o arquivo para anexar dados, posiciona o ponteiro no final do arquivo; se o arquivo não existir, será criado um novo;
- a+: abre o arquivo para anexo/leitura, posiciona o ponteiro no final do arquivo; se o arquivo não existir, será criado um novo;

Obs: Além dos modos de abertura descritos acima, um arquivo pode ser aberto como binário, especificando o modo de abertura como "b".

use_include_path: este parâmetro é opcional; se for atribuído o valor 1, e não for especificado nenhum caminho (path) no nome do arquivo, ele será procurado no diretório especificado em include_path, no arquivo php.ini.

A função fopen() retorna um número inteiro, o indicador (handle) do arquivo. Este indicador será necessário quando formos realizar operações de leitura e escrita no arquivo, indicando qual arquivo iremos manipular. Portanto, para abrir um arquivo usamos a seguinte instrução:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

<?php
$fp = fopen("./arquivo.dat", "r"); // $fp conterá o handle do arquivo que abrimos
?>

Aqui estamos abrindo um arquivo já existente no modo somente leitura, e atribuindo o valor retornado por fopen() à variável $fp. $fp conterá um número inteiro positivo (o handle do arquivo) se a operação tiver sucesso; caso contrário, conterá zero.

Depois de utilizar o arquivo, é necessário que ele seja fechado. Para tanto utilizamos a função fclose():

fclose(handle_arquivo);

No caso do arquivo que abrirmos no exemplo anterior, teríamos a seguinte instrução:

<?php
fclose($fp);
?>

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Abrindo e fechando um arquivo
   2. Escrevendo e lendo arquivos
Nenhum artigo encontrado.

O perigo no gerenciador de uploads do PHP

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

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

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

Gerando documentos PDF com a classe FPDF no PHP

#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

Entre na sua conta para comentar.