Escrevendo um arquivo de texto, usando PHP
Em muitos códigos que eu desenvolvo, a maioria deles utiliza sistema de log, para poder ir mapeando pontos do sistema a ser analisado posteriormente, como por exemplo, alguma falha de conexão, tentativas de acesso a algum lugar restrito… Enfim são muitas possibilidades de uso de um arquivo de log.
Para isso iremos utilizar apenas três funções, que é o fopen para abrir o arquivo, fwrite para escrever no arquivo, e o fclose para fechar o arquivo.
O primeiro passo é definir em qual arquivo vamos escrever (ou qual será o nome a ser criado), no nosso exemplo vou especificar um nome bem sugestivo como “arquivo.txt”, e jogar dentro da variável $file.
1
$name = 'arquivo.txt';
Outro dado muito importante, além de saber o nome do arquivo é saber o que vai escrever dentro dele, no nosso exemplo iremos inserir o texto “Olá. Eu sou Goku”, então inserir na variável $text.
1
$text = 'Olá. Eu sou Goku';
Como seu sistema já sabe o nome do arquivo, usar a função fopen informar o arquivo a ser aberto, e o modo que ele será aberto.
1
$file = fopen($name, 'a');
Note que na função fopen além do nome do arquivo eu informei a letra “a”, como um parâmetro adicional, para que serve? Com esse parâmetro estou informando ao sistema a forma que ele irá abrir nosso arquivo, que nesse caso, ele deverá abrir e prepara-lo para escrita e o ponto de onde irei escrever será no final do ultimo texto que estiver no arquivo, e caso o arquivo não exista o sistema deverá cria-lo. Consulte outras opções na documentação do PHP http://php.net/manual/pt_BR/function.fopen.php
Uma informação muito importante… Se o arquivo não existir no seu servidor, e a pasta onde ele será escrito não tiver permissão de escrita, poderá resultar no erro “Failed to open stream: Permission denied in…”, para resolver isso, crie o arquivo manualmente, e dê permissão de escrita, ou dê a permissão de escrita para a pasta onde ele estará.
Uma vez o arquivo aberto é hora de escrever alguma coisa nele, usaremos a função fwrite, informar o arquivo a ser aberto e o que colocar dentro dele.
1
fwrite($file, $text);
Missão cumprida, agora como boa pratica tudo que você usa você guarda, então já que abrimos o arquivo, vamos fechar… Isso irá evitar que o arquivo possa se corromper.
Nesse caso usaremos a função fclose informando o arquivo a ser fechado.
1
fclose($file);
Segue código completo…
1
2
3
4
5
6
<?php
$name = 'arquivo.txt';
$text = 'Olá. Eu sou Goku';
$file = fopen($name, 'a');
fwrite($file, $text);
fclose($file);
Um exemplo de uso nisso é gravar log do que o PagSeguro retorna no retorno automático de dados e API de notificações, veja abaixo como você iria capturar os posts.
1
2
3
4
5
6
<?php
$name = 'arquivo.txt';
$text = var_export($_POST, true);
$file = fopen($name, 'a');
fwrite($file, $text);
fclose($file);