php-get数据从表单到get方法

时间:2011-07-03 06:20:10

标签: php

test.php?t=xxx,y=sss

这是用户将数据输入我的脚本的方式。

如何将此数据作为test.php中的数组获取,并删除逗号?

2 个答案:

答案 0 :(得分:2)

访问$_GET['t'],您将获得值'xxx,y=sss' - 我认为您必须将网址更改为

test.php?t=xxx&y=sss

因此,您将能够访问$_GET['t']并获得值'xxx'$_GET['y']的值'sss'

您也可以将所有参数值发送到一个变量,例如以'|'分隔 - 然后用该char分隔:

网址为test.php?array=xxx|sss|ddd|rrrtest.php您将执行以下操作:

$arr = explode('|', $_GET['array']);

这种方式在$arr变量中,您将发送一系列值(无论有多少)

答案 1 :(得分:2)

$temp = explode(',', $_GET['t']);
$t = $temp[0];
$y = substr($temp[1],2);

会从您提供的网址中获得您想要的内容,但@Tudor Constantin拥有最佳解决方案。

修改

这将循环遍历您拥有的所有字段。他们将以正确的顺序完成$ result。

$temp = explode(',', $_GET['t']);
foreach($temp as $var){
    if(strpos($var, '=')){
        $exp = explode('=', $var);
        $result[] = $exp[1];
    } else $result[] = $var;
}

然后var_dump $ result给出了这个结果

array
    0 => string 'xxx' (length=3)
    1 => string 'sss' (length=3)
    2 => string 'ttt' (length=3)
    3 => string 'uuu' (length=3)

编辑2
或者你可以试试这个: -

说URL是“test.php?t = xxx,y = sss,z = ttt,a = uuu”

$temp = explode(',', $_GET['t']);
$key = array_keys($_GET);
$temp = array_reverse($temp);
$result[$key[0]] = array_pop($temp);
array_reverse($temp);
foreach($temp as $var){
    $exp = explode('=', $var);
    $result[$exp[0]] = $exp[1];
}

然后var_dump($ result);会给你: -

array
 't' => string 'xxx' (length=3)
 'a' => string 'uuu' (length=3)
 'z' => string 'ttt' (length=3)
 'y' => string 'sss' (length=3)