Задача: необходимо проверить на валидность и существование 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; }