【问题标题】:Getting array param out of query string with PHP使用 PHP 从查询字符串中获取数组参数
【发布时间】:2011-09-08 18:41:28
【问题描述】:

注意:这是上一个问题How to pass an array within a query string? 的后续问题,我在其中询问了在查询字符串中传递数组的标准方法。)

我现在有一些 PHP 代码需要使用上述查询字符串 - PHP 可以识别什么样的查询字符串数组格式,我需要做一些特殊的事情来检索数组吗?

以下似乎不起作用:

查询字符串:

?formparts=[a,b,c]

PHP:

$myarray = $_GET["formparts"];
echo gettype($myarray)

结果:

string

【问题讨论】:

  • 下次尝试更好地解释你的问题,因为现在它不可读
  • php 中只有一种类型的数组,即“数组”。格式取决于您放入其中的内容。
  • @yes123, @MarcB- 请查看修改后的问题

标签: php arrays query-string querystringparameter


【解决方案1】:

如果您正在处理查询字符串,您正在查看$_GET 变量。这将包含您上一个问题中? 之后的所有内容。

所以你要做的与其他问题几乎相反。

$products = array();
// ... Add some checking of $_GET to make sure it is sane
....
// then assign..
$products = explode(',', $_GET['pname']);

对每个变量以此类推。我必须在这里给你一个完整的警告,你必须检查通过$_GET 变量来确保它是理智的。否则,您的网站可能会受到威胁。

【讨论】:

  • @KyleWppd-我说的是在查询字符串中传递数组,而不是查询字符串 GET 数组本身-请参阅@soulmerge 的答案
  • 根据 PHP 中的定义,作为$_GET$_POST 请求的一部分传递的变量是一个字符串。我无法确定soulmerge 的答案是否有效,但他使用与您不同的语法来分配到数组中。
【解决方案2】:

您的查询字符串应该如下所示:

?formparts[]=a&formparts[]=b&formparts[]=c

【讨论】:

    猜你喜欢
    • 2017-12-09
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 2021-05-24
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多