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