我仍然对php有点新,并且想知道从网址中提取$_GET
变量的最佳方法。
例如我如何从这样的东西中捕获它:
http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957
只想获取“token=etc
...”
提前致谢
答案 0 :(得分:17)
一种简单的方法:
$token = isset($_GET['token']) ? $_GET['token'] : null;
如果设置了token
,则会将其分配给$token
,否则$token
为空。
答案 1 :(得分:4)
$_GET
是一个数组:
$token = $_GET['token'];
因此,如果您打印出来,您应该会看到查询字符串的令牌部分:
echo "'Token: $token'"; // should display 'Token: 3072420e7e32cbcf304da791537d757342cf5957';
注意强>
如果您尝试使用$ token搜索mysql数据库,则需要首先转义斜杠,以防止出现安全问题:
$token = mysql_real_escape_string($_GET['token']);
此外,在调用mysql_real_escape_string()
之前,首先需要建立mysql连接。
注意V.2
在您的查询字符串中,您的令牌将是?token=
之前的所有内容,直到PHP遇到查询键/对分隔符(通常为&
和;
)。即:
http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957&token2=otherstuff
&token2=otherstuff
是$_GET['token2']
可访问的另一个密钥,因此$_GET['token']
不会出现问题。
答案 2 :(得分:1)
所以你实际上有一个URL 字符串,并希望从中提取值:
$url = "http://www.example.com/reset_pw.php?token=3072420e7e32cbc...";
$p = parse_url($url); // splits up the url parts
parse_str($p["query"], $get); // breaks up individual ?var= &vars=
print $get["token"];
答案 3 :(得分:0)
解决方案1:
$token = isset($_GET['token']) ? $_GET['token'] : null;
此处如果未设置变量。它返回null
解决方案2:
$token = $_GET['token'];