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.605 ]

Por: Caio Filipini em 11/11/2002


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:

<?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);
?>

    Próxima página

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

O perigo no gerenciador de uploads do PHP

Organizando fotos de camêra digital

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

Manipulação de arquivos com PHP

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

  
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