//let my controller be C and method be:
function X($array){}
//And my url to call it is:
localhost/mysite/C/X/array
我尝试过但它返回 400-Bad Request 响应。 有谁知道怎么做?快速回复将对我有很大帮助// Thanx
答案 0 :(得分:2)
本地主机/ mysite的/ C / X /阵列= 1&安培;?&安培;?阵列= 2 ....
$ array = $ this-> input-> get('array');
或
本地主机/ mysite的/ C / X / 1,2,3,4,5
$array = explode(',' $this->uri->segment(n));
// in app/config/config.php
$config['permitted_uri_chars'] = 'a-z 0-9~%.:,_-';
我在url中的数组变体(/ tours / novogodniye-turi / visa = yes; duration = small; transport = 4,7,6,2 /)
if ( ! function_exists('filter_parse_segment'))
{
function filter_parse_segment($segment, $merge_to_get = FALSE)
{
if(empty($segment))
{
return FALSE;
}
$parameters = explode(";", (string)$segment);
if(empty($parameters))
{
return FALSE;
}
$parameters_array = array();
foreach($parameters as $parameter)
{
if(empty($parameter))
{
continue;
}
$parameter = explode("=", $parameter);
if( ! isset($parameter[0], $parameter[1]) or empty($parameter[0]))
{
continue;
}
if(strpos($parameter[1], ','))
{
$parameter[1] = explode(",", $parameter[1]);
}
$parameters_array[$parameter[0]] = $parameter[1];
}
if($merge_to_get === TRUE)
{
$_GET = array_merge($_GET, $parameters_array);
}
return $parameters_array;
}
}
// --------------------------------------------------------------------
if ( ! function_exists('filter_collect_segment'))
{
function filter_collect_segment($array, $suffix = '', $remove = array())
{
if(empty($array) || ! is_array($array))
{
return '';
}
$segment_str = '';
foreach ($array as $key => $value)
{
if(empty($key) || in_array($key, (array)$remove))
{
continue;
}
if( ! $segment_str == '')
{
$segment_str = $segment_str.';';
}
if( ! is_array($value))
{
$segment_str = $segment_str.$key.'='.$value;
continue;
}
if(empty($value))
{
continue;
}
$parsed_value = '';
foreach ($value as $item)
{
if( ! $parsed_value == '')
{
$parsed_value = $parsed_value.',';
}
if(is_array($item) || empty($item))
{
continue;
}
$parsed_value = $parsed_value.$item;
}
$segment_str = $segment_str.$key.'='.$parsed_value;
}
if($segment_str != '')
{
$segment_str = $segment_str.$suffix;
}
return $segment_str;
}
}
// --------------------------------------------------------------------
if ( ! function_exists('filter_key'))
{
function filter_key($filter_array, $key, $value = NULL)
{
if( ! isset($filter_array[$key]))
{
return;
}
if($value == NULL)
{
return $filter_array[$key];
}
if( ! is_array($filter_array[$key]) && $filter_array[$key] == (string)$value)
{
return $value;
}
if(is_array($filter_array[$key]) && in_array($value, $filter_array[$key]))
{
return $value;
}
return FALSE;
}
}
答案 1 :(得分:1)
如果你想要在非常好的URL中使用解决方案,那么你必须首先循环数组然后将元素连接到一些 - 破折号或+加号这样的符号;
$array = array(1,2,3,4);
$string = "";
foreach($array as $value){
$string .= $value."-";
}
$string = rtrim($string, "-");
redirect(base_url()."get_products?param=".$string);
在下一页上只需获取参数并使用explode()函数和 - dash符号再次创建数组。
答案 2 :(得分:0)
尝试这样的网址
if value you have to pass is
[1,2,3,2]
then
localhost/mysite/index.php/C/X/1,2,3,2
答案 3 :(得分:0)
以简单的方式,您可以使数组成为一个字符串,在数组的值之间有一些特殊字符。
然后在着陆页中,您可以使用特殊字符拆分字符串并再次获取数组。
如果值为[1,2,3,4],则使用循环“1,2,3,4”。
然后传递字符串。
在着陆页中用“,”分割字符串,然后你将再次得到数组。
希望它对你有所帮助。
由于
答案 4 :(得分:0)
为什么不将uri段用于数组?您可以计算uri细分,并可以使用它们。即使你可以检查那里有多少阵列。
url.com/1/2/3
http://ellislab.com/codeigniter/user-guide/libraries/uri.html
注意:uri段不能在主控制器索引函数上工作,你必须定义另一个函数而不是索引例如:我不知道它发生了什么但我认为因为htaccess文件我正在使用do remove index.php
url.com/uri_segment_controller/go/1/2/3