【问题标题】:sending arrays in _GET in php在 _GET 在 php 中发送数组
【发布时间】:2011-11-30 14:49:24
【问题描述】:

php 提供了从_GET 发送数组的能力。

示例:

test.php?var1=abc&arr[0]=1&arr[3]=test

将输出:

Array
(
    [var1] => abc
    [arr] => Array
        (
            [0] => 1
            [3] => test
        )

)

这算不算糟糕的编码?

【问题讨论】:

  • 完全没问题,而且经常做。只需确保在对它们进行任何操作之前验证这些值。

标签: php arrays get


【解决方案1】:

不,这是惯例。发送大小大于 1 的选择也是很自然的做法。

【讨论】:

  • 你能告诉我sending selects with size greater than one是什么意思吗?
  • 当您创建表单元素时,选择属性 size="n" 和 multiple="multiple" - 您可以选择多个选项。当它进入服务器时,它看起来像 selectname=val1&selectname=val2&... 因此,要在 PHP 中接收值,您需要将 select 命名为 selectname[],而在 $_GET 或 $_POST 中,它将是带有键 selectname 的数组。跨度>
【解决方案2】:

没有。

看起来不错。

你甚至可以这样做:

test.php?var1=abc&arr[]=1&arr[]=test

哪个会输出:

Array
(
    [var1] => abc
    [arr] => Array
        (
            [0] => 1
            [1] => test
        )

)

【讨论】:

    【解决方案3】:

    是的,这是一件坏事,而且对您的网站也非常不利SEO。如果您在查询字符串中输入过多,它很快就会变得非常混乱。保持简单!

    【讨论】:

    • 不...只是不。我假设您对 .htaccess 重写几乎一无所知。 roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html 仅仅因为您使用 $_GET 传递数据并不意味着数据可以在 url 中查看。您可以使用 htaccess 更改 url 的显示方式。大多数网站将&foo=bar?foo=bar 替换为“/bar”。此外,OP 并没有询问 SEO,而是询问了编码实践。
    • OP 没有询问 htaccess 重写。我确实知道很多关于 htaccess 重写的知识,而且我还可以告诉您,您的 .htaccess 文件可能充满了大量的重写,而不是一个将所有内容重定向到 / 然后解析 $_SERVER['REQUEST_URI'] 的文件。但我知道什么?我对 .htaccess 重写知之甚少。
    • OP 询问了$_GET,您说它不好的原因是无效的,因为您可以使用 .htaac​​ess。是的,我确实有重写规则,因为我希望出于 SEO 目的看到 url 中的一些数据。如果用户单击动态生成的链接以转到具有 id 的博客而不在链接 url 中传递数据,我也很好奇您如何传递数据。
    猜你喜欢
    • 2020-02-21
    • 1970-01-01
    • 2011-11-04
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多