0
我想获得触发控制器内部控制器的段深度。代码点火器控制器uri段
例如: 我有控制器/数据/ something.php
class Something extends CI_Controller {
public function index()
{
$depth = ???; // should be 2
}
}
将通过www.domain.com/data/something
计数段将是不相关的,因为我可以去加载于: www.domain.com/data/something/anotherthing/
,仍然运行以前的控制器,但深度应保持2
任何想法如何完成?
EDIT 澄清:
我想在URI中的部分触发控制器(忽略自定义路由)的深度。
我不想要所有的uri元素,因为控制器/方法之后可能会有更多的元素。
例如。 domain.com/controller_name/method_name/param1/param2
只有第2个部分各段的触发控制器
我至今是:
public function route_segments()
{
$path = dirname(BASEPATH) . '/'. APPPATH;
$request = substr(str_replace('\\','/',__FILE__), strlen($path) - strlen(EXT));
$request = substr($request, strpos($request, '/'));
$trigger_path = '';
for ($i=1, $n = $this->uri->total_segments(); $i<=$n && $trigger_path != $request; $i++){
$trigger_path .= '/'.$this->uri->segment($i);
}
$route_segments = explode('/',trim($trigger_path,'/'));
return count($route_segments);
}
问题是我不要使用__FILE__,因为我想在父控制器
SOLUTION:
添加答案
吧?我不明白,你想要所有的URI元素(并计算它们)?在CI中有功能..否则我不知道你的意思? – Jakub
你可以尝试使用CI路由。 –
@Jakub我还没有找到任何CI在这 – galchen