PHP: Получение переменной url с preg_match?
http://www.example.com?id=05
или
http://www.example.com?id=05&name=johnny
Это строка. И я хочу получить от него значение $id
.
Каков правильный шаблон для него?
Ответы
Ответ 1
Решение @PhpMyCoder отлично. Но если вам абсолютно необходимо использовать preg_match (хотя в этом случае он совершенно не нужен)
$subject = "http://www.mysite.com?id=05&name=johnny";
$pattern = '/id=[0-9A-Za-z]*/'; //$pattern = '/id=[0-9]*/'; if it is only numeric.
preg_match($pattern, $subject, $matches);
print_r($matches);
Ответ 2
Вам не нужно регулярное выражение (и вы не должны прыгать прямо в регулярное выражение в будущем, если у вас нет веской причины).
Используйте parse_url()
с помощью PHP_URL_QUERY
, который извлекает запрос. Затем сопоставьте это с parse_str()
.
$querystring = parse_url('http://www.mysite.com?id=05&name=johnny', PHP_URL_QUERY);
parse_str($querystring, $vars);
echo $var['id'];