当前位置: 首页 > 后端技术 > PHP

CodeIgniter3.1.X使用

时间:2023-03-29 13:39:15 PHP

如何配置默认控制器?如果没有设置,默认方法是什么?在目录application/config/routes.php配置$route['default_controller']='home';$route['default_controller']='home/add';defaultmethod不能设置默认方法,或者在url参数中指定m,或者不指定m参数。如果未设置m参数,则默认方法为index()。如何加载视图?$this->load->view('home');$this->load->view('index/home');//如果视图是按文件夹区分的,如果视图文件不是.必须带上文件夹名。php,那么需要写后缀如下$this->load->view('home.html');如何加载视图的公共部分$this->load->view('head');$this->load->view('home');$this->load->view('foot');在home.php中更优雅地引入publicviewintroduceload->view('head');?>code-codeload->view('foot');?>如何加载模型?模型加载后如何使用?手动加载$this->load->model('user');//加载User模型第二个参数:模型别名字符串第三个参数:是否自动连接数据库bool(数据库连接一般放在自动连接配置中)自动加载在a??pplication/config/autoload.php中,修改如下:$autoload['模型']=array('用户');//使用$this->model_name->method()加载User模型model;建议使用原生PHP而不是模板引擎输出变量流程控制:branch//if//code//code<?phpelse:?>//代码//switch//代码//代码//code流程控制:loop//while(注意,do…while没有语法)//code//for//code//foreach//code如何导入辅助函数?辅助功能的优先级手动导入$this->load->helper('url');自动导入添加$autoload['helper']=array('url');在application/config/autoload.php中FunctionPriorityapplication下的自定义辅助组函数优先于system下的辅助函数。如何安全获取输入?获取GET参数$param=$this->input->get('key',TRUE)//XSS过滤器$param=$this->input->get('key',FALSE)//如果请求没有XSS过滤器如果数据不存在,则返回NULL(下面方法相同)获取POST参数$param=$this->input->post('key')获取PUT、DELETE、PATCH参数$param=$this->input->raw_input_stream;$param=$this->input->input_stream('key',TRUE);//XSS清除an$param=$this->input->input_stream('key',FALSE);//没有XSS过滤器获取COOKIE参数$param=$this->input->cookie('some_cookie',TRUE);//使用XSS过滤器获取SERVER参数$param=$this->input->server('some_data');//获取$_SERVER数据获取PATHINFO参数$product_id=$this->uri->segment(3,0);//获取第三个分片数据,如果没有默认0,如何校验数据?验证失败怎么办?加载表单验证类$this->load->library('form_validation');设置验证规则$this->form_validation->set_rules('email','Email','required');执行验证$ret=$this->form_validation->run();//成功返回True,否则返回false表单辅助函数$this->load->helper('form');然后可以在视图中输入如下代码:"/>如何重写URL?如何设置伪静态?RewriteURL--Hideindex.php//以apache为例,打开mod_rewrite模块,设置对应目录AllowOverride为All,在根目录下新建.htaccess文件RewriteEngineOnRewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dRewriteRule^(.*)$index.php/$1[L]mustfindconfiginconfig['index_page']=''Pseudo-static--url必须在config中找到后添加.htmlconfig['url_suffix']='.html'如何开启debug模式?如何启用页面缓存?启用调试$this->output->enable_profiler(TRUE);$this->output->enable_profiler(FALSE);//禁用和启用页面缓存$this->output->cache($n);//控制器中如何替换和扩展调用系统核心类?系统核心类位于:system/core/注意:系统核心类只能替换和扩展,不能创建新的替换//文件位于目录application/core//类名必须开头withthecoreclassnameCI_//文件名与系统核心文件名相同eg:Input.phpclassCI_Input{}extension//文件位于目录application/core//类名和文件名必须以MY_开头。(这个是可配置的)例如:MY_Input.php//类必须继承父类MY_InputextendsCI_Input{}系统类库有哪几种?如何加载和使用不同类型的类库?有2种1.普通类库文件位于system/libraries2.驱动位于system/libraries/driver目录加载普通类库文件$this->load->library('class_name');加载驱动程序$this->load->driver('class_name');类库文件如何创建自己的类库?如何替换和扩展系统类库?创建自己的类库//在application/libraries目录下,创建自己的类库文件classSomeclass{publicfunctionsome_method(){}}替换系统类库//在application/libraries目录下,创建同名系统类库文件类库文件示例://application/libraries/Email.php文件classCI_Email{}扩展系统类库//在application/libraries目录下接下来,你的新类名和文件名必须以MY_为前缀例如://application/libraries/MY_Email.php文件//该类在定义时必须继承父类classMY_EmailextendsCI_Email{}