Php 尝试使用正则表达式获取url参数的值

Php 尝试使用正则表达式获取url参数的值,php,regex,url-parameters,Php,Regex,Url Parameters,我试图使用正则表达式获取以下url的code参数的值: "http:\/\/instagram.com\/?code=wz6kmXaZbrDCHU8OdOW0PrshbZF60Zz8Aji4ivaG" 不幸的是,它没有成功,因此我最终做了以下工作: $jsonRedirectUriWithAuthCode = "http:\/\/instagram.com\/?code=wz6kmXaZbrDCHU8OdOW0PrshbZF60Zz8Aji4ivaG"; print "jsonRedirec

我试图使用正则表达式获取以下url的
code
参数的值:

"http:\/\/instagram.com\/?code=wz6kmXaZbrDCHU8OdOW0PrshbZF60Zz8Aji4ivaG"
不幸的是,它没有成功,因此我最终做了以下工作:

$jsonRedirectUriWithAuthCode = "http:\/\/instagram.com\/?code=wz6kmXaZbrDCHU8OdOW0PrshbZF60Zz8Aji4ivaG";

print "jsonRedirectUriWithAuthCode= " . $jsonRedirectUriWithAuthCode;
print "\n";
$query = parse_url($jsonRedirectUriWithAuthCode, PHP_URL_QUERY);
print "query= " . $query;
print "\n";
parse_str($query, $params);
print "params['code']= ". $params['code'];
die() ;
哪些产出:

jsonRedirectUriWithAuthCode= "http:\/\/instagram.com\/?code=wz6kmXaZbrDCHU8OdOW0PrshbZF60Zz8Aji4ivaG"
query= code=wz6kmXaZbrDCHU8OdOW0PrshbZF60Zz8Aji4ivaG"
params['code']= wz6kmXaZbrDCHU8OdOW0PrshbZF60Zz8Aji4ivaG"
以上就是我想要的。但我仍然很好奇,如果使用正则表达式,这将如何实现。有人可以吗
也许可以演示如何使用正则表达式提取代码参数的值?

使用
parse\u url
parse\u str
。 为了满足您的好奇心,您可以使用以下方法:

preg_match_all('/code=(.*?)$/', $theUrl, $match); 
echo $match[1][0];

使用
parse\u url
parse\u str
是一种方法,没有理由在这里使用正则表达式(除非你想引入错误)。任何实际用途,或者只是好奇?@AlexBlex好奇:)
[&?]code=\K[:alnum:]+
完成工作,但是,当url包含如下密码时,它可能会失败:
http://username:“&code=toto”@domain.com/path/file.php?code=abcd1234
parse\u url
避免了此类问题)。对于任意值来说都是相当棘手的,但有一些假设(例如,代码值始终是base64编码的)可能相当简单。