Contador de visitas com PHP e TXT

Com poucas linhas de código conseguimos construir um excelente contador de visitas sem o uso de bibliotecas.

 Escrevendo testes automatizados com PHPUnit

Vamos construir um simples e funcional contador de visitas utilizando puramente o PHP e seus recursos nativos, ou seja, nada de importar bibliotecas de terceiros. Esse projeto embora seja simples e pode ser utilizado em ambiente de produção.

Utilizando o poder da Programação Orientada a Objetos, vamos construir uma classe que permita manipular os acessos de diferentes páginas. Todos os acessos são persistidos em arquivo de texto, sem a necessidade de um banco de dados.

As classes fopen, fwrite, fclose e fread são funções do PHP utilizadas para manipulação de arquivos de texto. Elas desempenham um papel fundamental no desenvolvimento do contador de visitas.

A função fopen é utilizada para abrir um arquivo em modo de leitura ou escrita, retornando um ponteiro de arquivo que será utilizado pelas outras funções para acessar o conteúdo do arquivo. No contexto do contador de visitas, ela seria utilizada para abrir o arquivo de texto onde os acessos são registrados.

A função fwrite permite escrever dados em um arquivo aberto anteriormente com a função fopen. Ela recebe o ponteiro de arquivo e o conteúdo a ser escrito. No caso do contador de visitas, essa função seria utilizada para registrar cada acesso no arquivo de texto.

A função fclose é responsável por fechar o arquivo aberto com a função fopen. Isso é importante para liberar os recursos utilizados pelo sistema operacional. No contador de visitas, ela seria usada para encerrar o arquivo de texto após a escrita dos dados.

Por fim, a função fread permite ler o conteúdo de um arquivo aberto com a função fopen. Ela recebe o ponteiro de arquivo e a quantidade de bytes a serem lidos. No contexto do contador de visitas, essa função poderia ser utilizada para ler o número total de acessos registrados no arquivo de texto. Utilizaremos ela com a função filesize().

Em resumo, essas funções permitem abrir, escrever, ler e fechar arquivos de texto, possibilitando a persistência dos dados de acesso do contador de visitas em um arquivo específico. Com sua utilização adequada, é possível implementar um contador de visitas funcional sem a necessidade de um banco de dados, apenas com o PHP e suas funcionalidades nativas.

Assista a nossa videoaula para aprender a criar o seu contador de visitas em PHP.

Todo código utilizado na videoaula está abaixo.

<?php

class Contador
{
    private string $path;
    private string $page;
    private string $filename;

    public function __construct(string $page)
    {
        $this->path = 'acessos/';

        $this->page = strtolower($page);

        $this->filename = sprintf('%s%s.txt', $this->path, $this->page);

        $this->createDir();
    }


    public function setCount(int $count = 1)
    {
        $currentCount = $this->getCount() + $count;

        $fp = fopen($this->filename, 'w');

        fwrite($fp, $currentCount);

        fclose($fp);
    }

    public function getCount()
    {
        if (!file_exists($this->filename))
            return 0;

        $fp = fopen($this->filename, 'r');

        $count = fread($fp, filesize($this->filename));

        fclose($fp);

        return $count;
    }

    private function createDir()
    {
        if (is_dir($this->path))
            return;

        mkdir($this->path);
    }
}

Modo de utilização:

<?php

require('Contador.php');

$contador = new Contador('home');

$contador->setCount();

print_r($contador->getCount());