Является ли регулярное выражение хорошим способом проверить URL-адрес
Автор вопроса: BermingОтветов: 8
Я пытаюсь проверить правильность URL-адреса, введенного с помощью php5. Я думал об использовании регулярного выражения, но предполагая, что оно все время работает правильно, оно решает только проблему синтаксической корректности URL-адреса. Это ничего не говорит мне о том, что URL-адрес правильный или работает.
Я пытаюсь найти другое решение, чтобы сделать и то, и другое, если это возможно. Или лучше найти 2 отдельных решения для этого?
Если регулярное выражение - это путь, какие проверенные регулярные выражения существуют для URL-адресов?
даже проверка того, существует ли URL-адрес сейчас, не означает, что он будет существовать, когда вы захотите отобразить/использовать его позже. scunliffe 04.08.2010
Почему вы проверяете, действителен ли URL-адрес? Как правило, как веб-разработчик, разве вы не знаете заранее, что URL-адрес действителен? В большинстве CMS или других системах действительными URL-адресами являются либо файлы, либо записи базы данных, но проверка этого полностью зависит от вашей настройки. Некоторая дополнительная информация поможет вам ответить, конкретно о вашем затруднительном положении. Owen Allen 04.08.2010
Возможно, это слишком мягко для того, что вы хотите сделать, но взгляните на php. net/manual/en/function.parse-url.php Pekka 04.08.2010
У вас будут только URL-адреса HTTP для проверки? Gordon 05.08.2010
Вместо того, чтобы ломать голову над регулярным выражением (URL-адреса очень сложны), я просто использую filter_var(), а затем попытайтесь пропинговать URL-адрес, используя cURL а>:
Для проверки http://www.php.net/manual/en/filter.filters.validate.php
Чтобы проверить, существует ли он... ну, вам нужно попытаться получить к нему доступ на самом деле.
Ответ 3 · рейтинг 2 · brabster
Чтобы проверить, является ли URL-адрес "правильным или рабочим", вам нужно будет попробовать взаимодействовать с ним (например, как это делает веб-браузер).
Я бы порекомендовал HTTP-библиотеку для Perl, например LWP. ::Просто сделать это.
я бы использовал регулярное выражение, чтобы решить эту проблему, и я ненавижу регулярное выражение. Однако этот инструмент делает мою жизнь намного проще... проверьте его >> http://gskinner.com/RegExr/
Ответ 8 · рейтинг 1 · resmo
Пинговать URL-адрес, чтобы проверить, является ли он действительным URL-адресом, - это нонсенс!
Что делать, если хост не работает?
Что делать, если домен не пингуется?
Если вы действительно хотите провести "живое" тестирование, попробуйте разрешить URL-адрес с помощью DSN. DNS более надежен, чем PING или HTTP.