一、CI是什麼php
CI的全稱是CodeIgniter, 一個小巧但功能強大的 PHP 框架,做爲一個簡單而「優雅」的工具包,它能夠爲 PHP 程序員創建功能完善的 Web 應用程序。基於MVC設計模式,輕量易學,注重安全,文檔健全,有豐富的類庫。html
二、CI能作什麼程序員
CI提供了許多豐富的類庫,好比文件上傳、圖片處理、文件壓縮、郵件發送等。這些類庫的存在大大減低了開發的難度與週期,也減小了整合外部類庫的需求。能快速高效的開發各類web應用: 好比電子商務網站、SNS、論壇、內容管理系統(CMS)、客戶關係管理系統(CRM)等等。web
三、MVCsql
入口文件:惟一一個讓瀏覽器直接請求的腳本文件數據庫
控制器controller:協調模型和視圖設計模式
模型model:提供數據,保存數據api
視圖view:只負責顯示、表單...數組
動做action:是控制器中方法,用於被瀏覽器請求瀏覽器
四、CI中的mvc
訪問url使用的是pathinfo:入口文件.php/控制器/動做
application目錄中:controllers(控制器)、models(模型)、views(視圖)
五、c(控制器)。
不須要加後綴;
文件名所有小寫(例如:user.php);
全部控制器,直接或間接繼承自CI_Controller類;
控制器中,對動做(方法)要求:public、不能已下劃線開始、不要與類名相同(不然會被認爲是構造方法)。
六、視圖。
在控制器中加載視圖:$this->load->view(視圖)
//直接寫視圖名,不寫擴展名,若有子目錄,則加上子目錄,能夠屢次調用view;
視圖中直接使用php原生代碼,不使用模版引擎;
遍歷數據推薦使用<?php foreach($list as $item):?> <?=$item['']?> <?php endforeach;?>。
分配變量:this->assign('key','value')//smarty中;this->load->vars('key','value')或$data['list']=$list this->load
->vars($data)
七、超級對象
當前控制器對象(CI_Controller)
提供了不少屬性:
$this->load(類屬性,Loader.php中裝載器CI_Loader類實例)
裝載器CI_Loader類中提供方法:view()-裝載視圖、vars()-分配變量到視圖、database()-裝載數據庫操做對象、model()-裝載模型對象、helper()-輔助函數。
$this->uri(類屬性,URI.php中CI_URI類的實例)
CI_URI類中提供方法:
segment() 用於獲取url中的參數 入口文件.php/控制器/動做/參數1/參數2(或者動做中帶相對應參數)
$this->input(類屬性,Input.php中CI_Input類的實例)
CI_Input類中提供方法:
post() 獲取post提交的數據,至關於$_POST ;server() 獲取服務器中相關信息,至關於$_SERVER。
在視圖中,直接用$this來訪問超級對象中的屬性。
八、操做數據庫
修改配置文件:application\config\database.php
裝載數據庫對象:$this->load->database();
寫sql:$sql="";
執行sql:$this->db->query($sql,[關聯數組]); 查詢返回數組($res->result()),增刪改返回布爾
九、ar(active record,經常使用的簡單sql)操做
修改配置文件:application\config\database.php($active_record = TRUE;);application\config\autoload.php($autoload['libraries'] = array('database');)
執行查詢:$this->db->get(表名);查詢表中全部數據
執行插入:$this->db->insert(表名,關聯數組數據);
執行更新:$this->db->update(表名,關聯數組數據,條件(array))
ar連貫操做:$this->db->select('id,name')->from('user')->where('id >=',3)->limit(3,2)->order_by('id desc ')
->get();
// ci執行的sql($this->db->last_query())爲select 'id','name' from('blog_user') where 'id' >=3 order by 'id' desc limit 2,3
十、擴展ci控制器
application\core\目錄下建立MY_Controller.php其中類繼承CI_Controller。其餘控制器就能夠繼承MY_Controller。
十一、m(模型)
User_model繼承自CI_Model,能夠直接使用超級對象中的屬性。文件名全小寫,類名首字母大寫,建議使用_model做爲後綴。
控制器中
加載模型:$this->load->model('User_model');
調用模型獲取數據:$list=$this->User_model->getAll();
加載視圖:$this->load->view('視圖名',array('list'=>$list));
十二、url相關函數
控制器中加載url(常使用能夠在config目錄下的autoload.php文件中配置):$this->load->helper('url'); 而後表單中action可寫爲<?php echo site_url('控制器名/方法名'); ?>
base_url:<?php echo base_url(); ?>獲取基礎目錄(網站根目錄)
1三、設置路由
在config目錄下的routes.php文件中配置
$route['news/(\d+)\.html']='article/show/$1'; //=後面是實際訪問地址,前面的生成顯示地址
1四、ci的分頁
裝載類文件:$this->load->library('pagination'); $this->load->helper('uri');
$config['base_url']=site_url('控制器/方法名'); //地址
$config['total_rows']=100; //記錄總條數
$config['per_page']=10; //每頁記錄數
$config['first_link']='首頁'; //設置首頁連接顯示名稱
$this->pagination->initialize($config); //初始化設置
$page_index=intval($this->uri->segment(3)); //獲得起始位置
$sql='select * from 表名 limit $page_index,10';
$data['links']=$this->pagination->create_links(); //建立連接
$this->load->view('目錄/php名',$data);
1五、文件上傳
form表單,其中必有屬性enctype="multipart/form-data"。
input標籤,type爲file。
$config['upload_path'] = './uploads/'; //上傳目錄
$config['allowed_types'] = 'gif|jpg|png'; //文件類型
$config['max_size'] = '100'; //文件最大限制
$config['max_width'] = '1024'; //文件最大寬度
$config['max_height'] = '768'; //文件最大高度
$this->load->library('upload', $config); //裝載上傳文件
$this->upload->do_upload('input標籤名')); //上傳
1六、session(需配置)
$this->load->library('session'); (注:md5(uniqid()); //生成密匙)
this->session->set_userdata($array); //多頁面傳遞數據
this->session->set_flashdata($array); //兩頁面傳遞以後銷燬
1七、驗證碼(輔助函數CAPTCHA,詳細查api)
1八、表單驗證(詳細查api)