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'];