Php 如何在URL中获取未知$\u get值的数组?
我正在使用一个在线购物车,它接受订购的商品,并通过URL将它们的唯一ID传递到process.php页面。所以URL看起来像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
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
}
}