Подскажите чем проверить url на валидность, пример урл xxx.yyy.com xx1.yyy.com x1x.yyy.com 1xx.yyy.com спасибо
Для проверки url советую : filter_var($url,FILTER_VALIDATE_URL) В плане проверки русскоязычных доменов могу рекомендовать смотреть в сторону конвертации в IDN, т.е. к виду xn--af1bc.net тогда проблем с русским точно не будет. В стандартном наборе таких функций нет, только декодирование. Если есть возможность поставить соответствующий модуль PECL, то на мой взгляд это идеальное решение.
В свое время тоже задавался этим вопросом, изучив кучу доков, написал вот такую регулярку, правда это C++ и boost, но сама регулярка может перебраться и на php // Регулярка для выбора основных составных url const boost::regex main_expression( // PROTO HOST PORT "^(\?[^:/\?#]+)://)\?(\\w+[^/\?#:]*)(\?:\\d+))\?" // PATH FILE PARAMS "(/\?(\?:[^\?#/]*/)*)\?([^\?#]*)\?(\\\?(.*))\?", boost::regbase::normal | boost::regbase::icase);
прикольно, не знал можно вот таким режексом Code: REGEX_IPADDR = "((25[0-5]|2[0-4][0-9]|1?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]?[0-9])" REGEX_DOMAIN = "([a-zA-Z0-9_-]{1,61}\.)+[a-zA-Z]{2,4}" REGEX_URL = "https?://(" + REGEX_IPADDR + "|" + REGEX_DOMAIN + ")"
Если вам надо проверить, существует ли указанный адрес или нет, то есть способ : $url ='http://hashcode.ru';if(get_headers($url,1)){ echo 'Гуд';}