qf1410640014
Goto Top

URL Loggen mit PHP?

Hallo,

hat wer ein fertiges PHP-Skript zur Hand, das nicht mehr können muss, als z.B. alle 20 Sekunden einen URL auf Existenz zu prüfen und im Falle der Nichterreichbarkeit das irgendwo in eine Datei hinloggt .

Grund: es soll protokolliert werden, ob das Internet über Nacht irgendwann ausfällt, um dem Provider mit seinen 99.9% Verfügbarkeit auf den Zahn zu fühlen.

LG

Content-ID: 315117

Url: https://administrator.de/forum/url-loggen-mit-php-315117.html

Ausgedruckt am: 17.04.2025 um 07:04 Uhr

Yannosch
Lösung Yannosch 13.09.2016 aktualisiert um 10:17:43 Uhr
Goto Top
Hi,

<?php
$url = 'http://www.example.com';  
$array = get_headers($url);
$string = $array;
if(strpos($string,"200"))  
  {
    echo 'url exists';  
  }
  else
  {
    echo 'url does not exist';  
  }
?>

Müsstest dort den die IF & ELSE-Section anpassen damit du den Echo einfach in eine TXT mit Timestamp schreibst - dazu gibt es aber eineiges im Netz. Natürlich noch in eine Schleife packen um die Wdh. umzusetzen.

Aber wenn du nur testen willst ob die Website Up oder down ist - kann ich dir diesen Service ans Herz legen.
Uptime Robot

Grüße
Yannosch
qf1410640014
qf1410640014 13.09.2016 um 21:03:35 Uhr
Goto Top
Hallo,

danke, hab den Codeschnippsel in ein eigenes Script eingebaut und entsprechend angepasst.

Der Zweck ist wirklich nur, zu sehen ob unser eigenes Netz "down" ist irgendwann in der Nacht.

LG
IrunGoldstein
IrunGoldstein 13.09.2016 aktualisiert um 21:45:15 Uhr
Goto Top
Hi,
noch eine curl variante:
<?PHP
//url der Seite
$url = 'http://www.xyz.com';  
// curl initialisieren
$ch = curl_init($url);
//header anfordern
curl_setopt($ch, CURLOPT_HEADER, true);    // kein download
curl_setopt($ch, CURLOPT_NOBODY, true); 
// ergebnis als string
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// maximale zeit der anfrage 
curl_setopt($ch, CURLOPT_TIMEOUT,10);

$output = curl_exec($ch);

$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);
// file name schreibrechte beachten
$file = 'logfile.txt';  
$data = $httpcode;

$timestamp = time();
$date = date("d.m.Y - H:i", $timestamp);  


$combined = $data . ' ' . $date;  
// schreibe in datei 

file_put_contents($file, $combined, FILE_APPEND | LOCK_EX);

<?

PS: ist am Smartphone zusammen getackert gerade, eventuelle formatierung der kommentare überprüfen und rausnehmen...

Kann man noch ausbauen in dem man am ende auf wunsch per if / else den status code >=200 bis <=300 nicht schreibt und nur 300 aufwärzt..

Noch einen cronjob auf die Datei nicht vergessen.

Edit: Zu lange die Seite nicht aktualisiert ist ja schon gelöst face-wink

Grüße
Yannosch
Yannosch 14.09.2016 um 08:33:17 Uhr
Goto Top
Wenn es aber Grundsätzlich um die Erreichbarkeit von außen geht -> würde ich einfach ein Monitoring von draußen laufen lassen.