Распознавание URL PHP - PullRequest
       1

Распознавание URL PHP

2 голосов
/ 23 января 2011

Как проверить, является ли текст, введенный пользователем, URL-адресом?

Допустим, я хочу проверить, является ли текст URL-адресом, а затем проверить, содержит ли строка «youtube.com».,После этого я хочу получить интересующую меня часть ссылки между подстроками «watch? V =» и любыми параметрами «&», если они существуют.

Ответы [ 3 ]

5 голосов
/ 23 января 2011

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

Пример:

$urlParts = parse_url('http://www.youtube.com/watch?v=MX0D4oZwCsA');
if ($urlParts == false) echo "Bad URL";
else echo "Param string is ".$urlParts['query'];

Выходы:

Param string is v=MX0D4oZwCsA

Вы можете разделить часть запроса по необходимости, используя explode () для определенных параметров.

Редактировать : имейте в виду, что parse_url() старается изо всех сил проанализировать заданную строку, поэтому плохие URL-адреса часто будут успешными, хотя получаемый массив данных будет очень странным. Очевидно, вам решать, насколько точно вы хотите, чтобы ваша проверка была, и что именно вам нужно из вашего пользовательского ввода.

0 голосов
/ 23 января 2011

Настоятельно рекомендуется не использовать parse_url () для проверки URL. здесь - хорошее решение.

0 голосов
/ 23 января 2011
preg_match('#watch\?v=([^&]+)#', $url, $matches);
echo $matches[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...