Ok. Ich denke ich werde es so machen:
1. fsockopen()
2. get_meta_tags()
Bei fsockopen habe ich ein Timeout, bei get_meta_tags() nicht, aber ich gehe jetzt einfach mal davon aus, dass mein Server erreichbar ist
Ich gehe doch richtig der Annahme, dass wenn fsockopen() nicht verfügbar ist, die Anfrage auf fopen() sinnlos sein dürfte oder?
Hat jemand einen "total sicheren" Server und kann mal testen, ob trotz safe_mode und anderen Maßnahmen get_meta_tags() funktioniert?
EDIT:
Im Endeffekt müsste das die Lösung für mich sein:
Code: Alles auswählen
$host = 'example.com';
$file = '/';
$port = 80;
$errno = 0;
$errstr = '';
$timeout = 5;
$found = false;
if ( $fs = fsockopen($host, 80, $errno, $errstr, $timeout) )
{
fputs($fs, "GET $file HTTP/1.1\r\n");
fputs($fs, "HOST: $host\r\n");
fputs($fs, "Connection: close\r\n\r\n");
if ( strpos(fgets($fs, 16), '200') !== false )
{
$found = true;
}
fclose($fs);
}
else
{
if ( @get_meta_tags('http://' . $host . $file) )
{
$found = true;
}
}
if ( $found )
{
echo('Die Seite ist erreichbar!');
}
else
{
echo('Die Seite ist NICHT erreichbar!');
}
Irgendwelche Einwände?
