Aller au contenu

PHP : Application pour monitorer des URL

<?php
// Connexion à la base de données
$db = new PDO('mysql:host=localhost;dbname=monitoring', 'username', 'password');

// Récupération des URL à surveiller depuis la base de données
$query = "SELECT url FROM monitored_urls";
$stmt = $db->prepare($query);
$stmt->execute();
$urls = $stmt->fetchAll(PDO::FETCH_COLUMN);

// Boucle de surveillance des URL
foreach ($urls as $url) {
    $down = false;
    // Vérifie si l'URL est disponible pour 1 min
    for ($i=0; $i < 12; $i++) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_NOBODY, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
        curl_exec($ch);
        $response = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);

        if ($response != 200) {
            $down = true;
        } else {
            $down = false;
            break;
        }
        sleep(5);
    }

    // Si l'URL n'est pas disponible pendant 1 min, envoie un courriel
    if ($down) {
        $to = "email@example.com";
        $subject = "URL non disponible";
        $message = "L'URL $url n'est pas disponible depuis 1 min.";
        $headers = "From: monitoring@example.com";
        mail($to, $subject, $message, $headers);
    }
}
?>

Il est important de noter que l’exemple ci-dessus vérifie l’URL toutes les 5 secondes pendant une minute (12 x 5s = 60s). Vous pouvez ajuster cette valeur en fonction de vos besoins.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *