Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用codeigniter(不使用querystring)将复杂的$\u GET变量检索为多维数组_Php_Codeigniter_Get - Fatal编程技术网

Php 如何使用codeigniter(不使用querystring)将复杂的$\u GET变量检索为多维数组

Php 如何使用codeigniter(不使用querystring)将复杂的$\u GET变量检索为多维数组,php,codeigniter,get,Php,Codeigniter,Get,**我在谷歌上搜索了好几个小时,在stackoverflow内搜索。找到了一些相似的,但还没有找到好的答案** 我正在考虑使用codeigniter重写我的项目 我有一个search.php,可能有查询字符串: search.php?o=1&kk=1&k=sales&kx=&w=4&l=New+York%2C+NY%2C+USA&i=222&i=229&i=225&i=238&i=237&i=203&

**我在谷歌上搜索了好几个小时,在stackoverflow内搜索。找到了一些相似的,但还没有找到好的答案**

我正在考虑使用codeigniter重写我的项目

我有一个search.php,可能有查询字符串:

search.php?o=1&kk=1&k=sales&kx=&w=4&l=New+York%2C+NY%2C+USA&i=222&i=229&i=225&i=238&i=237&i=203&el=3&eu=10&ei=on&d=5&d=4&d=9&d=6&at=&a=Any
请注意$\u GET['i']和$\u GET['d']可以是数组

我发现有人提到

$this->url->uri_to_assoc();
希望我能检索到$\u获取值作为

/i/222/i/229/i/225/i/238/i/237/i/203

所以我测试了一下 controllers/show.php

class show extends CI_Controller
{
    function get()
    {
        echo "<pre>";
        print_r ($this->uri->uri_to_assoc());
        echo "</pre>";
    }
}
上面的代码只返回最后一个输入

Array
(
[i] => array ([0] => 0123, [1] => 52, [2] => 12)
)
我的实际问题是,在Codeigniter中, 从上面的URL中,是否有一种方法可以作为数组进行检索

Array
(
[d] => array ([0] => 123, [1] => 456),
[i] => array ([0] => 11, [1] => 99),
[dx] => 1,
[dy] => 'New+York'
)
或者类似的不使用Querystring?(因为如果启用Querystring,则无法使用其他Codeigniter帮助功能等)

这样我就可以找回我原来的$\u GET querystring

$_SERVER['QUERY_STRING']

在Codeigniter中。

您是否尝试过使用原始PHP查询字符串

$vars=$_SERVER['QUERY_STRING'];
$vars=explode('&',$vars);
$d=array();
$i=array();
foreach($vars as $var)
{
   $split=explode('=',$var);
   if($split[0]=='d')
   {
       $d[]=$split[1];
   }
   elseif($split[0]=='i')
   {
       $i[]=$split[1];
   }
   else
   {
        $$split[0]=split[1];// note the double $$ signs
   }
}
然后逐步通过它


您是否尝试过使用原始PHP查询字符串

$vars=$_SERVER['QUERY_STRING'];
$vars=explode('&',$vars);
$d=array();
$i=array();
foreach($vars as $var)
{
   $split=explode('=',$var);
   if($split[0]=='d')
   {
       $d[]=$split[1];
   }
   elseif($split[0]=='i')
   {
       $i[]=$split[1];
   }
   else
   {
        $$split[0]=split[1];// note the double $$ signs
   }
}
然后逐步通过它


您使用
$\u GET
而不是
$\u POST
有什么特别的原因吗?很好。我在我的老项目中使用了$GET,希望用户可以通过Twitter等分享他们的搜索结果(我知道这听起来很傻)。我可以通过使用url\u shortener并将$POST存储在我的数据库中或类似的方式来分配它,从而获得类似的结果。因此,我正在考虑使用Codeigniter与表单助手支持的$u POST进行搜索查询。(因为在Codeigniter中使用$_POST进行复杂表单输入似乎要容易得多),而且还需要注意的是,Twitter对他们的帖子有一个字符限制
:)
。因此,他们只能发布更简单的查询。比如search.php?i=1&d=9&a=any etc(不像我的例子中那样长的查询)Opps!我刚刚想起了我选择$\u GET over$\u POST的一个非常重要的原因。当用户在查看某个项目后按“backspace”按钮时,必须使用$\u GET才能让他们返回搜索结果。啊~~~!!!您使用
$\u GET
而不是
$\u POST
有什么特别的原因吗?很好。我在我的老项目中使用了$GET,希望用户可以通过Twitter等分享他们的搜索结果(我知道这听起来很傻)。我可以通过使用url\u shortener并将$POST存储在我的数据库中或类似的方式来分配它,从而获得类似的结果。因此,我正在考虑使用Codeigniter与表单助手支持的$u POST进行搜索查询。(因为在Codeigniter中使用$_POST进行复杂表单输入似乎要容易得多),而且还需要注意的是,Twitter对他们的帖子有一个字符限制
:)
。因此,他们只能发布更简单的查询。比如search.php?i=1&d=9&a=any etc(不像我的例子中那样长的查询)Opps!我刚刚想起了我选择$\u GET over$\u POST的一个非常重要的原因。当用户在查看某个项目后按“backspace”按钮时,必须使用$\u GET才能让他们返回搜索结果。啊~~~!!!谢谢,但这件事我已经知道了。我已经在我的旧项目中使用了类似的方法。我的问题是Codeigniter中是否有一个类或助手来处理多维$\u GET。谢谢,但这是我已经知道的。我已经在我的旧项目中使用了类似的方法。我的问题是Codeigniter中是否有一个类或助手来处理多维$\u GET。
$_SERVER['QUERY_STRING']
$vars=$_SERVER['QUERY_STRING'];
$vars=explode('&',$vars);
$d=array();
$i=array();
foreach($vars as $var)
{
   $split=explode('=',$var);
   if($split[0]=='d')
   {
       $d[]=$split[1];
   }
   elseif($split[0]=='i')
   {
       $i[]=$split[1];
   }
   else
   {
        $$split[0]=split[1];// note the double $$ signs
   }
}