Ferramentas de Usuário

Ferramentas de Site


dev_web:php:manipular_ficheiros

Manipular Ficheiros

Vou aqui escreve um documento sobre ficheiros em php.

O primeiro o primeiro comando que vou falar e o comando fopen comando que serve para abrir o ficheiro.

Abrir um ficheiro

Para abrir um ficheiro, usa-se o comando fopen. Este irá devolver um handler para o ficheiro, isto é, um objecto que represente um acesso ao ficheiro. A sua sintaxe é a seguinte:

fopen($nomeficheiro, $modoabertura)

O parâmetro $modoabretura indica o tipo de operação a executar sobre o ficheiro após a sua abertura podendo ser um dos seguintes:

Modo de abertura Explicação
r Abre o ficheiro para leitura e coloca o apontador no inicio
r+ Abre o ficheiro para leitura e escrita e coloca o apontador no inicio do ficheiro
w Abre o ficheiro para escrita e coloca o apontador no inicio do ficheiro ( cria o ficheiro se este não existir)
w+ Abre o ficheiro para leitura e para escrita e coloca o apontador no inicio do ficheiro (cria o ficheiro se este não existir)
a Abre o ficheiro escrita e coloca o apontador no fim do ficheiro (cria o ficheiro se este não existir)
a+ Abre o ficheiro para leitura e para escrita e coloca o apontador no fim do ficheiro (cria o ficheiro se este não existir)

Exemplo de abertura

// abrir o ficheiroa.txt exclusivamente para operações de leitura
$fa = fopen("ficheiroa.txt", "r");
 
// abrir o ficheirob.txt para escrita
$fb = fopen("ficheirob.txt", "w");

Uma vez aberto o ficheiro, é possível operar sobre ele, lendo ou escrevendo dados.

Ler conteúdos de um ficheiro de texto

Para ler ficheiros de texto, basta usar a função fread para ler todo o ficheiro. A sua sintaxe é a seguinte:

string fread($handle, $limite)

O $handle é o objecto que nos é devolvido pela função fopen (daí a necessidade de abrir o ficheiro com esta função). O $limite é o número de bytes que pretendemos ler do ficheiro de texto.

Exemplos de leitura de ficheiros

Assumindo que o ficheiroa.txt tem o seguinte conteúdo:

carochinha lindinha
e bonitinha
  • Ler os primeiros 3 bytes (caracteres) do ficheiro
$fa = fopen("ficheiroa.txt", "r");
 
// indicar o handler de abertura do ficheiro, e o limite pretendido
echo fread($fa, 3);

Resultado:

car
  • Ler todo o conteúdo do ficheiro:
$fa = fopen("ficheiroa.txt", "r");
 
// indicar o handler de abertura do ficheiro, e o limite pretendido
echo fread($fa, filesize("ficheiroa.txt"));

Resultado:

carochinha lindinha
e bonitinha

Escrever ficheiros de texto

Para escrever ficheiros de texto usa-se a função fwrite, cuja sintaxe é:

string fread($handle, $texto)

Tal como no fread, a variável $handle irá receber o objecto criado com a abertura do ficheiro, e $texto irá conter o texto a ser escrito no ficheiro.

Exemplos de escrita em ficheiros

Assumindo que o ficheirob.txt tem o seguinte conteúdo:

O sapo toscas foi passear ao rio
  • Acrescentar conteúdos ao ficheiro:
// Ter em atenção que devemos abrir o ficheiro para escrita
// mas colocando o apontador (onde começa a escrever) no fim do ficheiro
// usa-se a opção "a" (append)
$fb = fopen("ficheirob.txt", "a");
 
$novo = " e o macaco foi jogar hockey";
fwrite($fb, $novo);

Obtemos:

O sapo toscas foi passear ao rio e o macaco foi jogar hockey
  • Reescrever o conteúdo do ficheiro:
// ter o cuidado de abrir o ficheiro para escrita com "w"
$fb = fopen("ficheirob.txt", "w");
 
$novo = "O macaco foi jogar hockey";
fwrite($fb, $novo);

Conteúdo do ficheiro:

O macaco foi jogar hockey

Exemplo com leitura e escrita

Neste exemplo final, pretende-se fazer um contador muito simples de visitas ao website. Iremos usar um ficheiro de texto para guardar o número de visitas totais, por isso o que pretendemos é, ao chegar um visitante ao nosso website, abrir o ficheiro, ler o número de visitas já registadas, acrescentar-lhe a nova visita e actualizar o valor.

<?php
    // verificar se conseguimos aceder ao nosso contador
    if (!$file = fopen("contador.txt", "r")) {
        echo "O contador não conseguiu abrir o ficheiro";
    }else{ 
      // obter as visitas
      $visitas = (int) fread($file, filesize("contador.txt") + 1);
      $visitas++;
      fclose($file);
 
      // actualizar o numero de visitas no ficheiro
      $file = fopen("contador.txt", "w");
      fwrite($file, $visitas);
      fclose ($file);
 
      echo "Já recebemos $visitas visitas!";
    }
?>
Tópico de discussão no fórum: Ficheiros
dev_web/php/manipular_ficheiros.txt · Última modificação em: 2018/05/14 21:37 (edição externa)