Интересно, что было бы лучшим способом в PHP, чтобы проверить, при условии, гиперссылка действительна ... Сначала я попытался с:проверка PHP, если URL действителен
filter_var($url, FILTER_VALIDATE_URL) === false
Но это не принимает www.example.com
(без протокол). Так что я попытался с помощью простой модификации:
protected function checkReferrerUrl($url) {
if(strpos($url, '://') == false) {
$url = "http://".$url;
}
if(filter_var($url, FILTER_VALIDATE_URL) === false) {
return false;
}
return true;
}
Теперь он отлично работает с www.example.com
, но и принимает простой foo
как он превращается в http://foo
. Однако, хотя это не действительный публичный url, я думаю ... так что бы вы предложили? Вернитесь к традиционным regexp?
Да, я бы сказал, регулярное выражение путь. Существует множество шаблонов для проверки URL-адресов, поэтому, если вы не хотите писать их самостоятельно, вы все равно найдете их. – treegarden
Это зависит от того, что вы подразумеваете под «действительным». Должен ли он существовать, то есть успешно отвечать на запросы? В этом случае [ссылка] (http://php.net/manual/en/function.get-headers.php) может быть тем, что вы ищете. – raute
Я просто хочу проверить, может ли реферер определить, должен ли я что-то отображать или нет. Но возможно, что в момент ввода конфигурации такая ссылка не будет существовать (т. Е. Какой-то сайт будет выпущен в ближайшем будущем, а администратор хочет что-то заранее настроить) – Moby04