在PHP中设置URL中的变量

时间:2014-01-16 08:07:58

标签: php

是否可以在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

4 个答案:

答案 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