Manipulação de arquivos no PHP

Abrindo um arquivo

A função fopen() é usada para abrir arquivos no PHP.

O primeiro parâmetro desta função contem o nome do arquivo a ser aberto e o segundo parâmetro especifica em que modo ele deve ser aberto:

Exemplo:

   1:<html>
2:<body>
3:<?php
4: $file = fopen("arquivo.txt" , "r");
5:?>
6:</body>
7:</html>
O arquivo pode ser aberto em qualquer um dos seguintes modos:

ModoDescrição
rSomente leitura. Inicia no inicio do arquivo.
r+Leitura e escrita. Inicia no inicio do arquivo.
wSomente escrita. Abre e limpa o conteúdo do arquivo, ou cria um novo arquivo se ele não existe.
aApençar(Apend).Abre e escreve no final do arquivo, ou cria um novo arquivo se ele não existe.
a+Ler/Apençar(Append).Abre e escreve no final do arquivo (preservando o seu conteúdo), ou cria um novo arquivo se ele não existe.
xSomente escrita.Cria um novo arquivo. Retorna falso ou um erro se o arquivo já existe.

Nota: Se a função não conseguir abrir o arquivo ela retorna 0(falso).

Exemplo

O exemplo a seguir gera uma mensagem se a função fopen() não consegue abrir o arquivo especificado.
   1:<html>
2:<body>
3:<?php
4:$file = fopen("arquivo.txt", "r") or exit("Não foi possível abrir o arquivo");
5:?>
6:</body>
7:</html>
Fechando um arquivo

A função fclose() é usada para fechar um arquivo:
   1:<?php
2:$file = fopen("arquivo.txt","r");
3://código a ser executado
4:fclose($file);
5:?>
Verificando o final do arquivo

A função feof() checa se o o final do arquivo (EOF) chegou. É uma função útil para a iteração de de dados de tamanho desconhecido.

Nota: Você não pode ler feof() de arquivos abertos nos modos w, a ou x!
   1:<?php
2:if (feof($file))
3: echo "End of file";
4:?>
Lendo um arquivo linha por linha

A função fgets() é usada para ler uma única linha de um arquivo.
Nota: Depois de uma chamada a esta função o ponteiro do arquivo move-se para a próxima linha.

Exemplo

O exemplo abaixo lê um arquivo linha por linha até o final do arquivo:
   1:<?php
2:$file = fopen("arquivo.txt", "r")
3: or exit("Não é possível abrir o arquivo!");
4:while(!feof($file)) {
5: echo fgets($file). "<br />";
6:}
7:fclose($file);
8:?>
Lendo um arquivo letra por letra

A função fgetc() é usada para ler um único caractere de um arquivo..

Nota: Depois de uma chamada a esta função o ponteiro do arquivo move-se para o próximo caractere.

Exemplo

O exemplo abaixo lê um arquivo letra por letra, até o final do arquivo:
   1:<?php
2:$file = fopen("arquivo.txt","r")
3: or exit("Não foi possível abrir o arquivo!");
4:while (!feof($file)) {
5: echo fgetc($file);
6:}
7:fclose($file);
8:?>
Referência para as funções de arquivos

Para uma referência completa sobre as funções de arquivos, visite a documentação do PHP.

Fonte

5 comentários:

  1. Achei seu blog muito interessante e já me inscrevi. Tenho uma dúvida quanto a utilização do fopen Como formato a saída de um formulário html com method=post e action para um arquivo php com a função fopen escrevendo estas variáveis para um novo arquivo.Gostaria que este novo arquivo criado com o fopen ficasse adequadamente formatado com algumas tags html. Poderia me ajudar? desde já muito obrigado

    ResponderExcluir
    Respostas
    1. Olá Lula, como eu fiz? Use uma variavel para o fopen ->
      $f=fopen("arquivo.txt","w");
      fwrite($f,"qualquer coisa");
      fwrite($f,"SINAL MENOR html SINAL MAIOR SINAL MENOR BARRA html SINAL MAIOR etc. etc.");
      fclose($f);
      Vc poderá escrever uma página inteira, seja de html ou de php etc.
      Se Vc usar
      $f=fopen("arquivo.php","w"), // este criará um arquivo com extenção .php.

      Excluir
    2. Consegui colocar algumas tags html no arquivo gerado com fopen com o parâmetro w. Na realidade o meu objetivo é que meu usuário veja o arquivo html, portanto preciso formatá-lo da melhor maneira possível. Obrigado pela resposta.

      Excluir
  2. olá
    a funçao fopen(r, eof) lê linha por linha, mas não consegui ainda selecionar numa linha uma palavra . Já usei a função explode, mas ainda não me adaptei. Como faz??

    ResponderExcluir
    Respostas
    1. Oi Moacir. A função explode pode ser usada para separar as palavras. A assinatura dela de acordo com documentação do PHP é :
      array explode ( string $delimiter , string $string [, int $limit ] )
      Portanto para separar palavras de uma forma mais simples você usaria explode(" ", $linha).
      Voce pode ver a documentação da função em http://php.net/manual/pt_BR/function.explode.php.
      Grande abraço.

      Excluir