[PHP] Monitorowanie widoczności strony
Dziś stworzymy dość prosty, ale funkcjonalny skrypt monitorujący dostępność stron www. Skrypt oczywiście oparty o bibliotekę cURL. W przypadku, gdy dana strona będzie niedostępna, skrypt będzie wysyłał powiadomienie na maila.
<?php
// Tablica z adresami stron do sprawdzenia
$urls = [
"https://www.example.com",
"https://www.google.com",
];
$notification_recipient = ''; // E-mail dla powiadomień
// Funkcja sprawdzająca dostępność strony
function checkAvailability($url) {
$ch = curl_init($url);
// Ustawiamy odpowiednie opcje
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // Weryfikacja SSL
curl_exec($ch);
// Sprawdzamy kod odpowiedzi HTTP
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// Zwróć TRUE, jeśli kod odpowiedzi jest między 200 a 399 (strona jest dostępna)
return ($httpCode >= 200 && $httpCode < 400);
}
Obsługa powiadomienia mail
function send_notification($url) {
require 'PHPMailerAutoload.php';
$subject = 'Powiadomienie';
$message = 'Strona ' . $url . ' jest niedostępna.';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->CharSet = PHPMailer::CHARSET_UTF8;
$mail->setFrom('powiadomienia@example.com', 'Automat');
$mail->addAddress($notification_recipient);
$mail->Subject = $subject;
$mail->Body = $message;
return $mail->send();
}
// Iteracja po adresach URL i sprawdzenie dostępności
foreach($urls as $url) {
// Wysyłamy powiadomienie, gdy strona jest niedostępna
if(!checkAvailability($url)) {
send_notification($url);
}
}
Wystarczy teraz dodać taki skrypt do zadań Cron, aby automatycznie otrzymywać powiadomienia o niedostępności serwisu www.
Komentarze
Prześlij komentarz
Dzięki za komentarz!