test.php?t=xxx,y=sss
这是用户将数据输入我的脚本的方式。
如何将此数据作为test.php中的数组获取,并删除逗号?
答案 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|rrr
,test.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)