Napisałem mały skrypcik, który sprawdza, czy podany URL jest poprawny. Kod odpytuje serwer i na podstawie zwróconego nagłówka stwiedza, czy adres istnieje. Coś jednak schrzaniłem, bo czasem dostaję błąd 404, 403 i inne nawet, gdy strona rzeczywiście istnieje. Oto kod:
<?php
class URLExistsRule extends Rule {
public function isValid($field) {
if ($fp = @fsockopen($url['host'], 80
, $errno, $errstr, 30
)) { $page = $url['path'];
$page .= !empty($url['query']) ?
'?' . $url['query'] : '';
@fputs($fp, "HEAD " . $field . " ". "HTTP/1.0rnHost: " . $url['host'] ."rnrn"); $response = @fgets($fp, 1024
); if (!$response) {
return false;
}
if(eregi("200 OK", $response) || eregi("302 Found", $response)) { return true;
}
}
return false;
}
}
?>
Co może być źle?