Валидность URL

417
.
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;
}
.
Kpegumop
то есть эта штука проверяет, существует ли адрес указанный в тексте, выводимом в цикле 184 раза?? это чтобы сервер завалить?
// eregi_replace(), eregi() - маленько устарели
.
(\/)____o_O____(\/)
http://annimon.com/code/?act=v ... =1276
.
Koenig, поясните нубу. зачем это нужно? )
.
Ей 25
Kpegumop, ну может быть тебе в каком то скрипте понадобится узнать существует ли файл по такой то ссылке. Вот с помощью такого кода можно будет проверить есть файл или нет.
.
(\/)____o_O____(\/)
Kpegumop, мне нужно было для проверки файлов перед импортом
.
Koenig, я думаю проще у себя после импорта проверить. загрузился или нет. чем делать непонятные запросы на сторонние ресурсы.
.
ValekS, пока не представляю где мне это понадобилось бы. все эти запросы на сторонний ресурс, зло
.
(\/)____o_O____(\/)
Kpegumop, можно изначально не делать все процессы по загрузке, а вывести ошибку, чем если файла не существует , этих ошибок будет больше, в том числе и проверка на существование файла после загрузки, по сути окончательная, это равносильно тому чтоб проверять расширение загружаемого файла в самом конце
.
(\/)____o_O____(\/)
Kpegumop, этим же способом можно узнать и тип файла и размер, получение заголовков это не непонятный запрос на чужой сервер
Всего: 30