Napisałem taki kod:
<? $curl = curl_init(); //inicjuje curla curl_setopt($curl, CURLOPT_URL, $_GET['site']); //definiuje adres curl_setopt($curl, CURLOPT_HEADER, 1); //wlacza zwracanie naglowkow curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //przekierowanie wyjscia do zmiennej curl_setopt($curl, CURLOPT_TIMEOUT, 60); //timeout curla $wyjscie = curl_exec($curl); //przypisanie wyjscia do zmiennej curl_close($curl); //zamkniecie polaczenia przez curl ?>
Problem w tym że gdy dodaję do sprawdzenia domenę która nie istnieje, to mój skrypt nie zwraca mi 404, ani żadnego sensownego komunikatu, tylko na jednym hostingu zwraca mi nagłówek 200OK oraz stronę http://d2.pl/ (to pewnie hostingodawca albo reseler), a na innym serwerze dostaję pustą stronę i nie ma nagłówka (czyli reakcja taka jak w przypadku kiedy curl łączy się z działającym serwerem ale serwer muli i mój skrypt łapie timeouta).
Jak przerobić ten skrypt żeby poprawnie identyfikować:
1) czy domena istnieje?
2) jeśli istnieje to czy serwer działa?
3) jeśli nie działa to czy jest to timeout czy błąd 404?
(Pisałem już kiedyś o curlu w temacie http://forum.php.pl/index.php?showtopic=132683 ale teraz mam trochę inny problem dlatego założyłem nowy wątek.)