2

** 何時間もググって、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

$_GET['i'] と $_GET['d'] は配列になる可能性があることに注意してください。

について言及されているものを見つけました

$this->url->uri_to_assoc();

$_GET 値を次のように取得できることを願っています

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

また

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

だから私は controllers/show.php でテストしました

class show extends CI_Controller
{
    function get()
    {
        echo "<pre>";
        print_r ($this->uri->uri_to_assoc());
        echo "</pre>";
    }
}

以下のようにURLを入力すると、

http://localhost/index.php/show/get/i/0123/i/52/i/l2

上記のコードは、最後の入力のみを返します。

Array
(
    [i] => l2
)

私の実際の質問は、Codeigniter で、上記の URL から、次のように配列として取得する方法はありますか?

Array
(
[i] => array ([0] => 0123, [1] => 52, [2] => 12)
)

または同様のクエリ文字列を使用していませんか? (クエリ文字列を有効にすると、他の Codeigniter 支援機能などを使用できなくなります。)

したがって、元の $_GET クエリ文字列を次のように取得できます

Array
(
[d] => array ([0] => 123, [1] => 456),
[i] => array ([0] => 11, [1] => 99),
[dx] => 1,
[dy] => 'New+York'
)

コードイグナイターで。

4

1 に答える 1

-1

生の PHP クエリ文字列を使用してみましたか?

$_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
   }
}
于 2012-04-19T13:17:15.073 に答える