我需要运行一个函数来对我的项目中的每个控制器名执行一些操作。我的函数是在如下控制器上定义的:
class Some_Controller extends CI_Controller{
public function someActions(){
// $listOfAllControllers = some_method_I_need_for_my_answer();
foreach($listOfAllControllers as $controllerName){
// some_action($controllerName)
}
}
}我想要的是--我的项目中存在的所有控制器的动态列表。
发布于 2015-06-09 05:52:29
您需要扫描/application/controllers directory并从其中删除文件扩展名。
$controllers = array();
$this->load->helper('file');
// Scan files in the /application/controllers directory
// Set the second param to TRUE or remove it if you
// don't have controllers in sub directories
$files = get_dir_file_info(APPPATH.'controllers', FALSE);
// Loop through file names removing .php extension
foreach ( array_keys($files) as $file ) {
if ( $file != 'index.html' )
$controllers[] = str_replace('.php', '', $file);
}
print_r($controllers); // Array with all our controllers或
您也可以按照此链接来实现这一目标。
发布于 2016-07-11 08:29:10
foreach(glob(APPPATH . 'controllers/*' . 'php') as $controller){
$controller = basename($controller, '.php');
}https://stackoverflow.com/questions/30723876
复制相似问题