Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在URL中获取未知$\u get值的数组?_Php - Fatal编程技术网

Php 如何在URL中获取未知$\u get值的数组?

Php 如何在URL中获取未知$\u get值的数组?,php,Php,我正在使用一个在线购物车,它接受订购的商品,并通过URL将它们的唯一ID传递到process.php页面。所以URL看起来像 process.php?code_1=231&code_2=532&code_3=342 为订购的每个项目生成另一个code\u x=xxx。在process.php页面上,我如何创建一个数组来获取code\x的值,而不知道订购了多少项?通过将表单中元素的名称更改为code[]可以更好地解决此问题 例如,你现在的位置,让我们说 <input typ

我正在使用一个在线购物车,它接受订购的商品,并通过URL将它们的唯一ID传递到process.php页面。所以URL看起来像

process.php?code_1=231&code_2=532&code_3=342

为订购的每个项目生成另一个
code\u x=xxx
。在process.php页面上,我如何创建一个数组来获取
code\x
的值,而不知道订购了多少项?

通过将表单中元素的名称更改为
code[]
可以更好地解决此问题

例如,你现在的位置,让我们说

<input type="text" name="code_1" ... />
<input type="text" name="code_2" ... />
<input type="text" name="code_3" ... />

使用这样的数组会更好

不使用
get
也会更干净。而是
post

但是,如果你真的想走这条路,你可以:

foreach($_GET as $name=>$value) {
    if (strpos($name, 'code_') !== 0) continue;

    // here are the names and values of the items
}
不过,我还是不推荐它。

print\r($\u-GET);
print_r($_GET);

foreach($_GET as $key=>$val)
{
    echo '<br />';
    echo $key.' : '.$val;

}
foreach($\u获取为$key=>$val) { 回声“
”; echo$key.':'.$val; }
您必须遍历$\u GET并查找名称

foreach(!empty($_GET as $name=>$value)) {
    // Check for match names for your 
    if (preg_match('/^code_[1-9]$/', $name)) {
      // Do whatever with values
    }
}

我同意,我正在使用jcart,并且没有对代码本身进行重大修改——这似乎是最快的方法。我真的不需要任何安全的立即作为网站是封闭的,只有内部员工。我会采纳你的建议,最终重新编码购物车和post数据。你的代码也会匹配一些字符,比如“code_test”也会匹配。因此,最好使用“^code[1-9]$”这样的正则表达式来获得精确的筛选。我同意,如果我自己创建了“cart”,我就会这样做。我会发布数据,而不是$u GET['code']。我只需要快速地做一些事情,然后从那里改进。谢谢你的帮助@弗莱帕:我为这种情况添加了一个替代方案。随着更新,我会把你作为正确的答案,因为你更好地解释了你应该做什么,以及如果你没有其他选择怎么做。感谢您的帮助。
ereg
从PHP5.3.0开始就被弃用了。改用
preg_match
print_r($_GET);

foreach($_GET as $key=>$val)
{
    echo '<br />';
    echo $key.' : '.$val;

}
foreach(!empty($_GET as $name=>$value)) {
    // Check for match names for your 
    if (preg_match('/^code_[1-9]$/', $name)) {
      // Do whatever with values
    }
}