是否可以在PHP中将部分URL设置为变量?
例如,如果这是URL:
http://domain.com/?=customer&p[1]=data&p[1]=admin_data&type_id=5&client_id=2345
我可以获取client_id=2345
网址的最后一段,并将2345
设置为变量$client_id
答案 0 :(得分:2)
y,ofc,这就是$ _GET的用途:
$client_id = $_GET['client_id'];
不要忘记验证,例如:
$client_id = filter_var($_GET['client_id'], FILTER_VALIDATE_URL);
答案 1 :(得分:2)
从网址中你使用$ _GET
$client_id = $_GET['client_id']
从表单$_POST
答案 2 :(得分:1)
您可以通过参数名称从$_GET
($ _ GET是一个php保留变量)获取url参数。
格式是:
$_GET['parameter_name'];
您的网址似乎未正确格式化:
http://domain.com/?=customer&p[1]=data&p[1]=admin_data&type_id=5&client_id=2345
它应该是这样的:
http://domain.com/?param_name=customer&p[1]=data&p[1]=admin_data&type_id=5&client_id=2345
然后你可以得到:
$var1 = $_GET['param_name'];
$client_id = $_GET['client_id']; // get client id
这里是参考:http://www.php.net/manual/en/reserved.variables.get.php 它会帮助你解决问题。
如果您有任何疑问,请告诉我
答案 3 :(得分:1)
自己看:
<?php
if (count ($_GET) == 0)
{
// redirect with GET parameters
$strange_get = "=customer&p[1]=data&p[1]=admin_data&type_id=5&a[1]->x=zz&b[1][2]=one&b[1][]=two"
header ("Location:${_SERVER['PHP_SELF']}?$strange_get");
exit();
}
// see what we got
print_r($_GET);
?>
结果:
Array
(
[p] => Array
(
[1] => admin_data
)
[type_id] => 5
[a] => Array
(
[1] => zz
)
[b] => Array
(
[1] => Array
(
[2] => one
[3] => two
)
)
)
customer
被忽略,因为没有给出任何名字
p[1]
设置了两次,因此只剩下最后一个值
a[1]->x=zz
被解释为a[1]=zz
b[1][2]
和b[1][]
按预期工作
阵列是你唯一可以开箱即用的东西。
例如,传递"?index=10&value[index]=123"
不会错误地解释index