如何通过PHP中的url发送数组?
我有一系列产品ID我希望通过url使用这些id,因为这是我在工作的osCommerce需要它,我该怎么办?
一般来说,osCommerce要求单个产品插入,这反过来又给了我一个产品ID,我将其传递到网址并将其放入购物车中,我显示了这个添加的产品,但现在我在第一页添加了多个产品使用不同的生成产品ID,我必须以与genaral中显示相同的方式显示这些产品,我将在url中显示所有这些生成的ID
答案 0 :(得分:9)
您正在寻找http_build_query()。
来自php.net的例子:
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data);
// foo=bar&baz=boom&cow=milk&php=hypertext+processor
echo http_build_query($data, '', '&');
// foo=bar&baz=boom&cow=milk&php=hypertext+processor
答案 1 :(得分:7)
的常用3 [] = ABC&安培;常用3 [] = PQR&安培; ARR [] = XYZ&安培; ARR [] = XXX
答案 2 :(得分:3)
我要做的是json_encode
(php json)数组并将其分配给php中的变量。然后你可以urlencode
变量通过url发送它。在另一端,你可以json_decode
。如果您不了解它,请查找json。它虽然非常强大和有用。
答案 3 :(得分:1)
您可以serialize()
将其发送为?a[]=1&a[]=val2&someOtherArg=val
。这将给出一个$_GET
数组,如:
array(
'a' => array(
0 => '1',
1 => 'val2',
),
'someOtherArg' => 'val'
)
但请注意,您应该将整个查询保持在约2k字符以下。 (more)
答案 4 :(得分:0)
如果您要发布数据,请使用PHP数组样式语法命名字段:
<input type="text" name="myArray[]" value="A">
<input type="text" name="myArray[]" value="B">
<input type="text" name="myArray[]" value="C">
如果要在GET请求中传递数据,可以使用explode分离数据并将其拆分为服务器端:
page.php?myData=A,B,C,D
...
$myArray = explode(',', $_POST['myData']);
答案 5 :(得分:0)
答案 6 :(得分:0)
如果您已经在数组中拥有产品ID,那么您可以使用http_build_query()
函数,它将对数组进行编码,如下所示:
http://www.example.com/?pid[]=1&pid[]=2&pid[]=3 ...
希望有所帮助。