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

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

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

Доп. информация
По умолчанию Автор темы 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 ([email protected]_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 ([email protected]_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)
Старый 20.04.2016, 13:55   #2
Sandz
 
Аватар для Sandz
 
Сообщений: n/a
FR (активность): 0

Доп. информация
По умолчанию

Цитата:
Сообщение от -Unick Посмотреть сообщение
$url = preg_replace("/[^x20-xFF]/","",@strval($url));
Уничтожает точку. Получается в результате не http://qweqwe.com, а http://qweqwecom
 
Сказать Плохо за это бесполезное сообщение
Закрытая тема


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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка уникальности изображений. Проверка "картинок" на фейковость. 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

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