PHP:使用preg_match获取url变量?

use*_*856 3 php regex

http://www.example.com?id=05
Run Code Online (Sandbox Code Playgroud)

要么

http://www.example.com?id=05&name=johnny
Run Code Online (Sandbox Code Playgroud)

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

它的正确模式是什么?

Bai*_*ker 12

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

使用parse_url()with 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'];
Run Code Online (Sandbox Code Playgroud)


Ani*_*han 9

@ 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);
Run Code Online (Sandbox Code Playgroud)