有人可以帮助我。如何从URL(PHP)获取第二个参数
我有这样一个链接:
http://www.somesite.com/somepage.php?&validation=3545&validation=1431
,但我想从第二验证作为变量获得1431。 我试图用这一点,但没有奏效:
$Validationcode2 = $_GET['validation=3545&validation'];
但我认为它不工作的方式。
有人可以帮助我。如何从URL(PHP)获取第二个参数
我有这样一个链接:
http://www.somesite.com/somepage.php?&validation=3545&validation=1431
,但我想从第二验证作为变量获得1431。 我试图用这一点,但没有奏效:
$Validationcode2 = $_GET['validation=3545&validation'];
但我认为它不工作的方式。
使用$_SERVER['QUERY_STRING']
来获取整个查询字符串。然后,您可以应用正则表达式(尝试/[?&]validation=3545&validation=(\d*)/
)以获取您要查找的值。
正则表达式演示:http://www.phpliveregex.com/p/e1L
$ _ SERVER文档:http://php.net/manual/en/reserved.variables.server.php
您需要的是GET参数是唯一的,所以不要有两个validation
变量,假定这是一个错误:
如果你知道这个名字你可以参考它:
$second_param = $_GET["validation"];
如果你总是想要s的Econd变量,无论名称,你可以做这样的:
$key_array = array_keys($_GET);
$second_param = $_GET[$key_array[1]];
这绝对是更好地使用验证[]构建,但有趣的是,它实际上工程以打印&验证的第二个参数= 1431
$url = "http://www.somesite.com/somepage.php?&validation=3545&validation=1431";
$parsed_url = parse_url($url);
$query = $parsed_url['query'];
parse_str($query,$parts);
print_r(array('parts'=>$parts));
这种打印出
Array(
[parts] => Array(
[validation] => 1431
)
)
参数名称应该是唯一的。你有控制网址吗? – chris85
你的意思是这样的:'http://www.somesite.com/somepage.php?validation = 3545&validation = 1431'(删除了额外的&符号) – 3ocene
可能的重复[如何从PHP中的URL中获取多个具有相同名称的参数](http://stackoverflow.com/questions/353379/how-to-get-multiple-parameters-with-same-name-from-a-url-in-php) – chris85