Проверка ссылок с учётом кириллических доменов

Extalionez

Клоун
Заблокирован
Регистрация
21 Авг 2008
Сообщения
368
Реакции
191
  • Автор темы
  • Заблокирован
  • #1
Здравствуйте! Получаю от пользователя ссылку. Спрашивается как проверить ссылка ли это тем более что он может прислать хоть президент.рф. Кроме того, нужно ещё ведь самому дописать в начале http:// если пользователь сам не додумался.
 
Не могу найти, где-то потерялась функция проверки в недрях проектов.
Но стартовать идеологически правильно вот от этой страницы Для просмотра ссылки Войди или Зарегистрируйся
 
Для начала нужно проверить (jscript) формат вводимого пользователем адреса на такие условия:
1. Наличие протокола
2. Наличие домена 1го уровня (последним не буквенным символом в имени домена должна быть точка)
3. Далее ссылку проверять сложно

Самый простой способ.
Если вы даете право пользователям оставлять ссылки, и вам важно, чтобы они были рабочими, то нужно подсказывать пользователю правила написания онных, а затем можно проверить ссылку по заголовку:
PHP:
$link = 'http://президент.рф/favicon.ico';
$headers = @get_headers($link);
if(strpos($headers[0],'200')===false) {
    $exists = false; //Нерабочая ссылка
}
else {
    $exists = true; //Рабочая ссылка
}

Этот способ должен работать для любых ссылок на любом языке мира.

Вот заголовки ответа:
Код:
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 13 Jan 2013 10:56:14 GMT
Content-Type: image/x-icon
Content-Length: 1150
Last-Modified: Fri, 08 Apr 2011 11:28:03 GMT
Accept-Ranges: bytes
 
Назад
Сверху