Como Verificar o Status de um Site com PHP e Automatizar com AJAX

Introdução

Verificar o status de um site pode ser muito útil para monitorar se um serviço está online ou offline. Neste post, vamos mostrar como usar PHP para verificar o status de um site específico utilizando a biblioteca cURL. Em seguida, vamos configurar uma atualização automática com AJAX e jQuery para que a verificação aconteça em intervalos regulares, como a cada 5 minutos.

Parte 1: Verificando o Status de um Site com PHP

Vamos começar com um exemplo básico de como usar cURL em PHP para verificar o status HTTP de um site.

Código PHP para Verificar o Status de um Site

<?php
// URL do site que você deseja verificar
$url = "https://www.exemplo.com";

// Inicializa uma sessão cURL
$ch = curl_init($url);

// Configura as opções cURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Retorna o conteúdo como string
curl_setopt($ch, CURLOPT_HEADER, true); // Inclui os cabeçalhos na resposta
curl_setopt($ch, CURLOPT_NOBODY, true); // Não precisamos do corpo da resposta

// Executa a requisição
curl_exec($ch);

// Obtém o código de status HTTP
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// Fecha a sessão cURL
curl_close($ch);

// Verifica se o código de status é 200
if ($httpCode === 200) {
    echo "O site está acessível e retornou 200 OK.";
} else {
    echo "O site retornou o código: $httpCode.";
}
?>

Explicação do Código

  1. Inicialização: Usamos curl_init() para iniciar a sessão cURL e passamos a URL do site que desejamos verificar.
  2. Configurações:
  • CURLOPT_RETURNTRANSFER: Retorna a resposta como string em vez de exibi-la diretamente.
  • CURLOPT_HEADER: Inclui os cabeçalhos na resposta para capturarmos o código de status HTTP.
  • CURLOPT_NOBODY: Define para true porque não precisamos do corpo da resposta, apenas o cabeçalho.
  1. Execução: curl_exec($ch) executa a requisição.
  2. Código de Status: Usamos curl_getinfo() para pegar o código de status HTTP da resposta, que nos indica se o site está online (200 OK) ou se há algum erro (por exemplo, 404 ou 500).
  3. Fechamento: curl_close() encerra a sessão cURL.
  4. Verificação: Comparamos o código de status com 200 para determinar se o site está acessível.

Parte 2: Automatizando com AJAX e jQuery

Agora que temos nosso código PHP, podemos automatizar essa verificação usando AJAX para que a página se atualize periodicamente sem precisar de um reload completo.

Passo 1: Criando o Arquivo PHP (verificar_status.php)

Coloque o código PHP acima em um arquivo chamado verificar_status.php.

Passo 2: Criando a Página HTML com AJAX

Aqui está o código HTML e JavaScript para fazer a requisição AJAX a cada 5 minutos:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Monitoramento de Status do Site</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <h1>Verificação de Status do Site</h1>
    <div id="status">Carregando status...</div>

    <script>
        function verificarStatus() {
            $.ajax({
                url: 'verificar_status.php', // O arquivo PHP que faz a verificação
                method: 'GET',
                success: function(response) {
                    $('#status').html(response); // Exibe a resposta no div
                },
                error: function() {
                    $('#status').html('Erro ao verificar o status do site.');
                }
            });
        }

        // Executa a função ao carregar a página
        verificarStatus();

        // Define um intervalo de 5 minutos (300000 milissegundos) para recarregar
        setInterval(verificarStatus, 300000);
    </script>
</body>
</html>

Explicação do Código

  1. HTML Básico: Criamos uma estrutura simples com um div de id status onde exibiremos o resultado da verificação.
  2. jQuery: Carregamos a biblioteca jQuery para facilitar a requisição AJAX.
  3. Função verificarStatus():
  • A função faz uma chamada AJAX para o arquivo verificar_status.php.
  • Se a requisição for bem-sucedida, o conteúdo do div é atualizado com a resposta do PHP.
  • Se houver erro, uma mensagem de erro será exibida.
  1. Atualização Automática:
  • Chamamos a função verificarStatus() ao carregar a página para exibir o status imediatamente.
  • Usamos setInterval(verificarStatus, 300000) para executar a função a cada 5 minutos (300.000 milissegundos), atualizando o status automaticamente.

Conclusão

Este post mostrou como usar PHP e cURL para verificar o status de um site e, em seguida, como automatizar essa verificação com AJAX usando jQuery. Essa abordagem é útil para monitorar a disponibilidade de serviços web de forma contínua e eficiente.

Agora você tem uma solução completa para monitoramento de status que pode ser adaptada e integrada facilmente ao seu sistema ou dashboard!

Rolar para cima