Escritura em ficheiros com PHP

Como e para que utilizar a função fwrite.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 20/9/04
Valorize este artigo:
Continuando com a gestão de ficheiros através de PHP, neste artigo veremos os passos básicos para a criação e escritura de um ficheiro de texto através de esta tecnologia do lado do servidor. Depois de ter visto como funciona a leitura sequencial de um ficheiro, podemos imaginar que escrever sobre ele não deve ser muito mais complicado.

Por outro lado, as possibilidades que estas duas operações nos podem oferecer conjuntamente são realmente surpreendentes. Por exemplo, escrever e ler ficheiros pode de certo modo muito por encima substituir a uma base de dados. De feito, se por diversos motivos (hosting, econômico, conhecimentos...) nos é difícil por a funcionar uma base de dados básica, sempre podemos resolver o inconveniente armazenando os nossos dados num ficheiro que depois poderão ser lidos. Claro que este método não tem nada de seguro nem de versátil e só é válido para um site sem informação confidencial e com pouca quantia de dados.

Também podemos pensar em criar documentos dinâmicos a partir de dados introduzidos em formulários:cartas, páginas HTML, etc...

Outro exemplo particularmente prático é a criação dinâmica de ficheiros que nos poupem recursos do servidor. Imaginemos que temos uma página, o ficheiro, no nosso site que se carrega muito freqüentemente e que realiza constantemente chamadas a base de dados ou executa scripts mais ou menos grandes. Se o conteúdo que estamos a mostrar é o mesmo pra todos os usuários e não tem porque ser actualizado constantemente, podemos contentar-nos com criar um script que execute uma só vez o script principal e que armazene o resultado em forma de ficheiro HTML que será na realidade o que mostraremos aos nossos visitantes. Desta forma, evitamos por uma parte a execução massiva de um mesmo script com o que estamos a poupar recursos e por outra automatizamos a actualização de uma determinada página ou secção executando periodicamente o script.

A escritura de ficheiros necessita, como é de esperar, uma apertura do ficheiro da maneira apropriada. Uma vez aberto, o seguinte passo será introduzir através da função fwrite (ou fput), a cadeia de desejamos incluir no nosso ficheiro.

Para exemplificar esta nova função de escritura e combina-la com a de leitura, fgets, proporcionamos-vos este contador inspirado numa nota da página oficial de PHP:

<?
function incremento_contador($archivo)
{
   // $archivo contém o numero que actualizamos
   $contador = 0;
   //Abrimos el archivo y leemos su contenido
   $fp = fopen($ficheiro,"r");
   $contador = fgets($fp, 26);
   fclose($fp);
   //Incrementamos o contador
   ++$contador;
   //Actualizamos o ficheiro com o novo valor
   $fp = fopen($ficheiro,"w+");
   fwrite($fp, $contador, 26);
   fclose($fp);
   echo "Este script foi executado $contador vezes";
}
?>


Aquí podem ver o resultado producido quando chamamos a esta função.

Como em outros exemplos, o script é expressado em forma de função para que seja mais facial a sua reutilização. As etapas pelas que passamos são verdadeiramente curtas e compreensíveis:

  • Iniciamos a variável contador.
  • Abrimos o ficheiro em modo leitura e extraímos o valor actual do contador lendo a primeira e única linha. Fechamos o ficheiro.
  • Aumentamos em uma unidade o valor do contador.
  • Abrimos o ficheiro e sobrescrevemo-lo (modo +w) com o valor do contador modificado.

Para que este tipo de scripts funcionem, o ficheiro ao qual queremos aceder tem de estar autorizado para leitura e escritura.

A função fwrite pode ser utilizada também para enviar dados a outro tipo de aperturas como são as de sockets ou de programas. Mas isto já é outra história...






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato