你可以使用钩子:http://ellislab.com/codeigniter/user-guide/general/hooks.html
或者您可以将您的小脚本编码到控制器的构造中。
function __construct()
{
parent::__construct();
//Put your code here, you can also load your models and stuff
//$this->load->model("user_model","user");
//Code code code
}
这里是一个 i18n 的钩子示例(语言模块) -- 在 applications/hooks/my_hook.php 下创建一个文件
function setUserLang()
{
//Getting the language of the user
//If nothing was found, stick with English
$ci =& get_instance();
if(!$ci->session->userdata('lang')){
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
case "fr":
$ci->session->set_userdata('lang','french');
break;
case "en":
$ci->session->set_userdata('lang','english');
break;
default:
$ci->session->set_userdata('lang','english');
break;
}
}
}
然后转到 applications/config/hooks.php 并添加类似的内容:
$hook['post_controller_constructor'][] = array(
'class' => '',
'function' => 'setUserLang',
'filename' => 'my_hook.php',
'filepath' => 'hooks'
);