function check_url($url) {
if (eregi( '^http://', $url)) {
$urlArray = parse_url($url);
if (!$urlArray[port]) $urlArray[port] = '80';
if (!$urlArray[path]) $urlArray[path] = '/';
$sock = fsockopen($urlArray[host], $urlArray[port], &$errnum, &$errstr);
if (!$sock) $res = 'DNS';
else {
$dump .= "GET $urlArray[path] HTTP/1.1\r\n";
$dump .= "Host: $urlArray[host]\r\nConnection: close\r\n";
$dump .= "Connection: close\r\n\r\n";
fputs($sock, $dump);
while ($str = fgets($sock, 1024)) {
if (eregi("^http/[0-9]+.[0-9]+ ([0-9]{3}) [a-z ]*", $str))
$res[code] = trim(eregi_replace('^http/[0-9]+.[0-9]+
([0-9]{3})
[a-z ]*', "\\1", $str));
if (eregi("^Content-Type: ", $str))
$res[contentType] = trim(eregi_replace("^Content-Type: ",
"",
$str));
}
fclose($sock);
flush();
return $res[code];
}
} else $res = "N/A";
return $res;
}
то есть эта штука проверяет, существует ли адрес указанный в тексте, выводимом в цикле 184 раза?? это чтобы сервер завалить?
// eregi_replace(), eregi() - маленько устарели
Koenig, поясните нубу. зачем это нужно? )
Kpegumop, ну может быть тебе в каком то скрипте понадобится узнать существует ли файл по такой то ссылке. Вот с помощью такого кода можно будет проверить есть файл или нет.
Kpegumop, мне нужно было для проверки файлов перед импортом
Koenig, я думаю проще у себя после импорта проверить. загрузился или нет. чем делать непонятные запросы на сторонние ресурсы.
ValekS, пока не представляю где мне это понадобилось бы. все эти запросы на сторонний ресурс, зло
Kpegumop, можно изначально не делать все процессы по загрузке, а вывести ошибку, чем если файла не существует , этих ошибок будет больше, в том числе и проверка на существование файла после загрузки, по сути окончательная, это равносильно тому чтоб проверять расширение загружаемого файла в самом конце
Kpegumop, этим же способом можно узнать и тип файла и размер, получение заголовков это не непонятный запрос на чужой сервер