jeg har også tidligere lavet en funktion til at tjekke om sider er on/off-line... men den synes at tage lidt tid hvis det er mange links den skal tjekke af gangen...
kode:
---
<?php
/*
Author : Morten Fangel <mfa@desi-dev.dk>
Desc : Kan se om servere / sider findes...
Functions : bool checkSite(str uri)
str checkSiteText(str uri)
Licens : GPL
Known bugs : hænger ved [ip]/side.ext
*/
// funktioner
function checkSite($uri){
$pos = strpos($uri, "/");
if($pos !== false){
$host = substr($uri, 0, $pos);
$page = substr($uri, $pos+1, strlen($uri)-$pos);
}
else{
$host = $uri;
$page = "";
}
if(ereg("[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", $host) || gethostbyname($host) !== $host){
if($sock = @fsockopen($host, 80, $errno, $errstr, 2)){
fputs($sock, "GET /" . $page . " HTTP/0.9\n");
fputs($sock, "Host: " . $host . "\n");
fputs($sock, "\n");
$data = fgets($sock,2048);
fclose($sock);
if(ereg("404 Not Found", $data)) return false;
else return true;
}
else return false;
}
else return false;
}
function checkSiteText($uri){
if(checkSite($uri)) echo "<font color=\"green\">Online</font> | $uri<br>\n";
else echo "<font color=\"red\">Offline</font> | $uri<br>\n";
}
// afprøvelse med text return
checkSiteText("
www.eksperten.dk/konto.phtml");
checkSiteText("
www.eksperten.dk/enside.asp");
checkSiteText("
www.soeloeve.dk/");
checkSiteText("
www.thomaslunde.dk");
checkSiteText("
www.sukkerbolle.com/");
checkSiteText("
www.sex.com/");
checkSiteText("80.199.149.130");
//checkSiteText("80.199.149.130/findes.php"); // hænger
?>
---
som der også står med en kommentar, så synes scriptet at gå død hvis man angiver en IP med en underside... fx 127.0.0.1/page.ext
phoenixv => som der står, så virker den funktion ikke på Win, hvilket kan give problemer...
Morten