如何通过PHP中的url发送数组值?

时间:2010-06-22 12:33:54

标签: php url

如何通过PHP中的url发送数组?

我有一系列产品ID我希望通过url使用这些id,因为这是我在工作的osCommerce需要它,我该怎么办?

一般来说,osCommerce要求单个产品插入,这反过来又给了我一个产品ID,我将其传递到网址并将其放入购物车中,我显示了这个添加的产品,但现在我在第一页添加了多个产品使用不同的生成产品ID,我必须以与genaral中显示相同的方式显示这些产品,我将在url中显示所有这些生成的ID

7 个答案:

答案 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_encodephp 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)

对它们进行编码就足够了:

http://your.url/page.php?myArray[0]=val1&myArray[1]=val2

答案 6 :(得分:0)

如果您已经在数组中拥有产品ID,那么您可以使用http_build_query()函数,它将对数组进行编码,如下所示:

http://www.example.com/?pid[]=1&pid[]=2&pid[]=3 ...

希望有所帮助。