PHP:使用preg_match获取url变量?

时间:2012-07-29 05:41:33

标签: php regex

http://www.example.com?id=05

http://www.example.com?id=05&name=johnny

这是一个字符串。我希望从中获得$id的值。

它的正确模式是什么?

2 个答案:

答案 0 :(得分:12)

你不需要正则表达式(除非你有充分的理由,否则你不应该在未来直接跳到正则表达式。)

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

答案 1 :(得分:8)

@ 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);