Intereting Posts
Невозможно вставить данные в базу данных через php-файл в android Сортировка списка файлов по дате Как вы находите предмет предложения? Многомерный массив неизвестной глубины в один размерный массив и соответствующие ключи в PHP сортировка полей таблицы с использованием простых XML и xpath отправлять почту с помощью xampp в php Luracast Restler: возвращенные объекты «Именование» Неустранимая ошибка: класс 'CI_Model' не найден Должны ли htmlspecialchars и mysql_real_escape_string сохранить код PHP безопасным от инъекции? Как включить расширение php с помощью `phpize`? Как не удалось выполнить запрос HTTP! HTTP / 1.1 463? Включить конфигурацию и базу данных из других файлов как получить только нулевой счетчик элементов в массиве php после установки magento на моей локальной машине я забыл пароль администратора Как проверить, выполняется ли ffmpeg кодирование видео с помощью PHP?

Полностью проверить URL-адрес с или без http или https

Я провел некоторое исследование по проверке URL-адресов на PHP и обнаружил, что существует много разных ответов на StackOverflow, некоторые лучше других, а некоторые очень старые и устаревшие.

У меня есть поле, где пользователи могут вводить URL своего сайта. Пользователь должен иметь возможность вводить URL-адрес в любой форме, например:

example.com www.example.com http://example.com http://www.example.com https://example.com https://www.example.com 

PHP имеет функцию проверки правильности URL-адресов , однако он помечает URL как недействительный, если у него нет http:// .

Как я могу проверить какой-либо URL-адрес, с или без http:// или https:// , чтобы убедиться, что URL-адрес действителен?

Благодарю.

Используйте filter_var() как вы заявили, однако по определению URL должен содержать протокол:

 $url = strpos($url, 'http') !== 0 ? "http://$url" : $url; 

Затем:

 if(filter_var($url, FILTER_VALIDATE_URL)) { //valid } else { //not valid } 

Я также видел, что это использовалось:

 $url = "http://example.com"; if (preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $url)) { echo "URL is valid"; } else { echo "URL is invalid"; } 

Источник: http://codekarate.com/blog/validating-url-php

Вы также можете позволить html проверить URL-адрес:

 Website: <input type="url" name="website" required pattern="https?://.+">