Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
HTTP-Code überprüfen, URls ausgeben und bei Fehler eine Mail senden
<?php
/**
* Prüft HTTP Header und gibt den Status aus
* Ist die gewünschte Seite nicht erreichbar, wird man automatisch kontaktiert.
*
* @author Kevin Pliester
* @url https://kevinpliester.de
* @license MIT
* @url https://opensource.org/licenses/MIT
*
*/
// Erlaubt den Zugriff per AJAX zum Einbinden auf anderen Seiten
header('Access-Control-Allow-Origin: *');
// Trage hier deine Email ein, um Emails zu empfangen
// Sofern eine Seite nicht verfügbar ist
define('MAIL_EMPFAENGER', '');
// Setze hier deine URLs ein
$urls = array(
'https://pixelbart.de',
'https://kevinpliester.de',
);
// Sortiert die Adressen alphabetisch
asort($urls);
/**
* Sendet eine Email sofern ein ERROR vorhanden ist
*
* @param $error string HTTP-Code
* @param $url string URL der Seite
*/
function sendmail($error, $url)
{
$empfaenger = MAIL_EMPFAENGER;
$betreff = "Die Seite $url hat einen $error Fehler!";
$from = "From: Status <status@pixelbart.de>\n";
$from .= "Content-Type: text/html\n";
$text = "Die Seite <strong>$url</strong> hat einen <strong>$error</strong> HTTP CODE!";
mail($empfaenger, $betreff, $text, $from);
}
// Styles für die farbigen Meldungen
$load = '<span style="width: 10px; height: 10px; display: inline-block; margin-right: 5px; background: #95a5a6"></span>';
$success = '<span style="width: 10px; height: 10px; display: inline-block; margin-right: 5px; background: #2ecc71"></span>';
$server = '<span style="width: 10px; height: 10px; display: inline-block; margin-right: 5px; background: #e74c3c"></span>';
$client = '<span style="width: 10px; height: 10px; display: inline-block; margin-right: 5px; background: #e67e22"></span>';
// Durchläuft die URLs und prüft jede einzelne
foreach($urls as $url) {
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
switch($httpCode) {
case 100:
echo $load . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
break;
case 101:
echo $load . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
break;
case 102:
echo $load . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
break;
case 200:
echo $success . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
break;
case 301:
echo $success . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
break;
case 302:
echo $success . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
break;
case 401:
echo $client . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
sendmail($httpCode, $url); // Sendet eine Email
break;
case 400:
echo $client . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
sendmail($httpCode, $url); // Sendet eine Email
break;
case 404:
echo $client . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
sendmail($httpCode, $url); // Sendet eine Email
break;
case 500:
echo $server . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
sendmail($httpCode, $url); // Sendet eine Email
break;
case 502:
echo $server . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
sendmail($httpCode, $url); // Sendet eine Email
break;
case 503:
echo $server . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
sendmail($httpCode, $url); // Sendet eine Email
break;
default:
echo $server . '<a href="' . $url . '" title="' . $url . '">' . $url . '</a><br />';
break;
}
curl_close($handle);
}
/**
* Gibt die Legende aus
*/
echo '
<h3>Legende</h3>
<p>
' . $success . 'Erfolgreiche Verbindung<br />
' . $client . 'Fehler durch Client (Mail ist raus!)<br />
' . $server . 'Fehler durch Server (Mail ist raus!)<br />
' . $load . 'Anfrage läuft noch
</p>';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.