Как использовать PHP для распознавания (и не проверки) URL

Я в курсе filter_var() И его FILTER_VALIDATE_URL фильтр. Дело в том, что есть некоторые URL, которые существуют, но не считаются действительными, и мне нужно их проверить. Например, URL с пробелами.

На данный момент я проверяю только те протоколы, которыми интересуется приложение (http, https и ftp), используя strpos(),

Но мне было интересно, есть ли в PHP более общий метод, который я мог бы использовать?

Это может помочь, если я объясню, что мне нужно различать, если целевой источник — это URL или локальный путь.

0

Решение

Использовать функцию parse_url() разделить URL-адрес на компоненты, а затем выполнить базовый анализ возвращаемых частей (или просто проверить, является ли возвращаемое значение array() или же FALSE).

Как сказано в документации:

Эта функция не предназначена для проверки заданного URL, она только разбивает его на перечисленные выше части. Частичные URL также принимаются, parse_url() старается разобрать их правильно.

А также:

На серьезно искаженных URL, parse_url() может вернуться FALSE,

Похоже, это очень хорошо соответствует вашему запросу.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]