Тарифы такси Киев.
Вернуться   SEO форум - оптимизация и продвижение сайтов > Web разработки > Программирование

Важная информация
Программирование - PHP, MySQL, JavaScript, CSS, HTML верстка и т.д.

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 03.02.2016, 01:52   #1
 
Аватар для Unick
 
Сообщений: 698
FR (активность): 31,962

Доп. информация
По умолчанию Автор темы PHP Проверка ссылки на корректность и существование

Внимание! Статья 2012 года. Переношу блог со своего сайта на форум.

Привет друзья! Нередко у web-разработчиков возникает необходимость проверить ссылку на корректность и существование.

Проверка URL на корректность PHP.

У нас есть переменная $url, в ней хранится ссылка.
Приведем все ссылки к стандартному виду, поставив всем в начало протокол http
if (!strstr($url,"://")){
$url="http://".$url;
}
Погуляв по интернету, я нашел скрипт для проверки ссылок на корректность, и слегка переписал под свои нужды
if (preg_match("/^(http://|https://)((www.|([w, -]+.))?([а-яw, -]+.)(com|net|org|info|biz|spb.ru|msk.ru|com.ru|org.  ru|net.ru|ru|su|us|bz|kz|ws|рф|pro))(|/.*)$/u", $url)) {
echo $url;
}

Цитата:
Примечание: Этот скрипт работает в кодировке UTF-8! Чтобы скрипт работал в ANSI, замените "$/u" на "$/"
Источник: http://www.yukosh.ru/library/ideas/
Этот код позволит нам проверить ссылку на корректность.
Также, я случайно наткнулся на еще один важный и очень интересный момент – удаление опасных символов в ссылках. Ну что же, много масла в каше не бывает.
function pregtrim($url) {
return preg_replace("/[^x20-xFF]/","",@strval($url));
}
Цитата:
Источник: http://php.spb.ru/php/regexp.html
Проверка URL на существование.

Когда мы знаем, что хочет скормить пользователь скрипту. Нам надо проверить ссылку на существование.
Первым делом разобьем ссылку на составляющие части и проверим записи DNS
$url_p=parse_url($url);
if (!empty ($url_p ['host']) and checkdnsrr($url_p ['host'])){
// Запись DNS существует
}
Когда мы убедились, что такой сайт существует, мы должны получить ответ от сервера.
if ($otvet=@get_headers($url)){
echo substr($otvet[0], 9, 3);
}
Он нам вернет код состояния страницы.
Если сервер вернет код 200, тогда страница существует!

Проверка ссылки php скрипт

Вот готовый рабочий скрипт для проверки ссылок на корректность и существование:
// Корректность ссылки (URL)
function check_url($url)
{
// удаление опасных сиволов (http://php.spb.ru/php/regexp.html)
$url = preg_replace("/[^x20-xFF]/","",@strval($url));
if (!strstr($url,"://"))
{
$url="http://".$url;
}

// проверка ссылки на корретность (http://www.yukosh.ru/library/ideas/)
if (preg_match("/^(http://|https://)((www.|([w, -]+.))?([w, -]+.)(com|net|org|info|biz|spb.ru|msk.ru|com.ru|org. ru|net.ru|ru|su|us|bz|kz|ws|рф|pro))(|/.*)$/u", $url))
{
return $url;
}
return false;
}
// Существование ссылки (URL)
function open_url($url)
{
$url_c=parse_url($url);

if (!empty($url_c['host']) and checkdnsrr($url_c['host']))
{
// Ответ сервера
if ($otvet=@get_headers($url)){
return substr($otvet[0], 9, 3);
}
}
return false;
}
Использование функций
// Проверка ссылки
$url='http://andreisorok1a.com/blog.h1tml';
if ($url=check_url($url))
{
// ссылка корректная
if ($o=open_url($url))
{
echo "Ответ сервера " . $o;
}
else
{
echo "Сервер не отвечает";
}
}
else echo "Некорректная ссылка";
2012 год andreisoroka.com
Canny: сообщение полезно


andreisoroka.com
Unick вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
Canny (03.02.2016),  Puppeteer (03.02.2016)
Ответ

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка уникальности изображений. Проверка "картинок" на фейковость. Alex LM SEO сервисы 6 12.05.2014 15:47
Гугл Кейводрс Тул Прекратил Свое Существование( Victoria Google 12 10.11.2013 23:17
Не работает Проверка обратной ссылки hightstreams О работе SEO Cafe 0 21.11.2012 21:56
Как почистить базу каталогов(проверка закрыты ли ссылки)) Makc.Plan Софт оптимизатора, SEO утилиты 11 25.03.2012 20:23

Текущее время: 00:34. Часовой пояс GMT +3.