我有以下网址:
www.example.com/index.php/search/search_data/Doctor:a/Gender:Male/Language:Urdu/
我希望将其转换为像
这样的关联数组$data=array(
'Doctor'=> 'a',
'Gender'=> 'Male',
'Language'=> 'Urdu'
);
我尝试使用codeIgniter的URI类函数
来做到这一点$this->uri->uri_to_assoc(n)
但由于它接受通过'/'分隔的数据,但我的数据是':'作为分隔符。
请帮帮我。
答案 0 :(得分:2)
我认为没有更简单的方法可以做到这一点,而不是手动完成。
首先,检索总段,循环,看它是否包含“:”,然后将其添加到数组中。
$segments = $this->uri->segment_array();
$search_array = array();
foreach($segments as $segment) {
if (strpos($segment, ":") !== FALSE) {
$e_array = explode(":", $segment);
$search_array[$e_array[0]] = $e_array[1];
}
}
在某处运行该代码段会为您提供理想的结果, $ search_array 将是一个关键数组,其中key =>值。
答案 1 :(得分:0)
你可以破解URI.php文件。将第431-439行更改为;
if (strpos($seg, ":") !== FALSE) {
list($parameter, $value) = explode(':', $seg);
if ($i % 2) {
$retval[$parameter] = $value;
} else {
$retval[$parameter] = $value;
$lastval = $seg;
}
} else {
if ($i % 2) {
$retval[$lastval] = $seg;
} else {
$retval[$seg] = FALSE;
$lastval = $seg;
}
}