Задача: необходимо проверить на валидность и существование URL, который отправляется пользователем через форму на сайте.
Для решения этой задачи написал простую функцию проверки, которую собственно и привожу ниже:
Для решения этой задачи написал простую функцию проверки, которую собственно и привожу ниже:
/** * Функция проверки URL * * @param string $url * @return boolean */ function checkUrl($url) { if (empty($url)) { return false; } // проверяем строку на присутствие в ее начале // протокола (http://|ftp://) if (!preg_match("~^(?:f|ht)tps?://~i", $url)) { $url = "http://" . $url; } // проверяем строку на присутствие в ней // валидного URL'а if (preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url)) { // далее проверяем URL на существование... // нет необходимости полностью загружать сайт, // поэтому проверям только заголовки return @get_headers($url); } return false; }
А если сайт на домене рф или адрес набран заглавными?
ОтветитьУдалитьНе так много руских доменов...
Удалить1. Для меня рф тока знакома других даже незнаю.
2. И нечего сложного нет чтоб пересмотреть регулярку [a-z0-9] на [a-zA-Zа-яеёА-ЯЕЁ0-9] как то так взял из головы, примеров много...
Это тоже можно (:[0-9]+) на (:[0-6]+) длинее не встречал хотя это не очень важно смысл http = (от 0 = до 4).
Тут тебе и заглавные,гласные,согласные, как хош понемай!
А если не понемаеш, зачем спрашивать... тока показал себя (плохое слово),