codeigniter類庫和輔助函數的使用

 $this->config->item('base_url');

--------------------------------------------------------------------
----------------------------類庫參考------------------------------


------數據庫類----------------------------------------------------
$this->load->database();
$query->num_rows()   //當前請求的行數
$query->num_fields()   //當前請求的字段數
$query->free_result()   //釋放當前查詢所佔用的內存並刪除其關聯的資源標識

$this->db->insert_id()   //這個ID號是執行數據插入時的ID
$this->db->affected_rows() //insert,update後,顯示被影響的行數
$this->db->count_all('my_table');//計算出指定表的總行數

insert_string:
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$sql = $this->db->insert_string('table_name', $data);
$this->db->query($sql);
update_string:
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$where = "author_id = 1 AND status = 'active'"; 
$sql = $this->db->update_string('table_name', $data, $where);
$this->db->query($sql);

所有的值都會被自動轉義,形成了較爲安全的查詢語句
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 
$this->db->query($sql, array(3, 'live', 'Rick'));

多結果標準查詢(對象形式):
$query = $this->db->query('SELECT name, title FROM my_table');
if ($query->num_rows() > 0){
   foreach ($query->result() as $row){
      echo $row->title;
      echo $row->name;
}} echo 'Total Results: ' . $query->num_rows();

單結果標準查詢(對象形式):
$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row();
echo $row->name;

 

------輸入類-------------------------------------------------------
$config['global_xss_filtering'] = TRUE;
//讓codeigniter自動處理POST 或者 COOKIE 數據
$this->input->post('some_data');
$this->input->post('some_data', TRUE); //跨站腳本過濾XSS Filtering
$this->input->get('some_data');
$this->input->get_post('some_data', TRUE);先搜POST後GET
$this->input->cookie('some_data', TRUE);
$this->input->server('some_data');
echo $this->input->ip_address(); //無效,返回0.0.0.0
echo $this->input->user_agent(); //瀏覽器的user agent信息

 

------轉載類--------------------------------------------------------
$this->load->library('class_name', $array, 'object name')
$this->load->view('file_name', $data, true/false) //true返回,默認false
$this->load->model('Model_name', 'object name');
$this->load->database('options', true/false)
$this->load->helper('file_name') //不包括 _helper.php 擴展名
$this->load->plugin('file_name') //不包括 _plugin.php 擴展名
$this->load->vars($array)   //轉化爲以key爲變量名的var,與extract同
$this->load->file('filepath/filename', true/false)
$this->load->lang('file_name')
$this->load->config('file_name')

 

------表單驗證類-------------------------------------------------------
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');
$this->form_validation->set_rules('username', 'Username', 'callback_username_check');
//以上,同控制器內定義username_check函數
if ($this->form_validation->run() == FALSE) //驗證未通過:FALSE

view部分:
value="<?php echo set_value('quantity', '0'); ?>"
以下有第三參數:TRUE/FALSE
set_select('myselect', 'one', TRUE);
set_checkbox('mycheck', '1');
set_radio('myradio', '1', TRUE);
<input type="text" name="colors[]" value="<?=set_value('colors[]'); ?>" />

 

------Session類----------------------------------------------------
$this->load->library('session');
$session_id = $this->session->userdata('session_id'); //不存在,返回FALSE
$this->session->set_userdata($array);    //添加 session
$this->session->set_userdata('some_name', 'some_value');
$this->session->unset_userdata('some_name');   //刪除 Session 數據
$this->session->sess_destroy();     //銷燬 Session
$config['sess_expiration'] = 7200;    //session 持續的秒數,2小時
$config['sess_encrypt_cookie'] = FALSE;    //是否對 session 數據加密

 

------配置類-----------------------------------------------------------
$lang = $this->config->item('item name');//元素不存在時,返回FALSE
$this->config->set_item('item_name', 'item_value');
$this->config->site_url();   //網站的 URL
$this->config->system_url();   //system folder 的URL

 

------基準測試類---------------------------------------------------
{elapsed_time}     //頁面執行時間
<?php echo $this->benchmark->elapsed_time();?>
{memory_usage}     //佔用內存值
<?php echo $this->benchmark->memory_usage();?>

 

 

------------------------------------------------------------------------
------------------------------------------------------------輔助函數參考


------數字輔助函數------------------------------------------------------
$this->load->helper('number');
echo byte_format(45678); // Returns 44.8 KB

 

------字符串輔助函數----------------------------------------------------
$this->load->helper('string');
echo random_string('alnum', 16); //可用於生成密碼串或隨機字串
$string = "/n"; echo repeater($string, 30); //產生30個空行

$string="Joe's /"dinner/"";
$string=quotes_to_entities($string); 
//results in "Joe&#39;s &quot;dinner&quot;" 
//字符串中的單引號和雙引號轉換爲相應的 HTML 字符表示
strip_quotes() //去掉字符串中的單引號和雙引號

 

------url輔助函數-------------------------------------------------------
$this->load->helper('url');
echo site_url("news/local/123");
//http://example.com/index.php/news/local/123
echo base_url(); //config.php 中設定的 base_url
echo current_url(); //當前頁
echo uri_string(); //當前頁的URI段
echo index_page(); //config.php 中設定的 index_page
echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));
redirect('/login/form/', 'refresh'); //刷新,默認是跳轉:location
redirect('/article/13', 'location', 301);

 

------表單輔助函數------------------------------------------------------
$this->load->helper('form');
$attributes = array('id' => 'myform');
echo form_open('email/send', $attributes);
//<form method="post" action="http://example.com/index.php/email/send" id="myform" />

$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden); //第三個參數
//<form method="post" action="http://example.com/index.php/email/send">
//<input type="hidden" name="username" value="Joe" />
//<input type="hidden" name="member_id" value="234" />

form_hidden('username', 'johndoe');
//<input type="hidden" name="username" value="johndoe" />

echo form_label('你的名字是?','username');
//<label for="username">你的名字是?</label>

 

 

------------------------------------------------------------------
----------------------------------------------------------常規主題


------URI路由-----------------------------------------------------
example.com/product/4/
$route['product/:num'] = "catalog/product_lookup";
即將被重定向
:num 將匹配一個只包含有數字的segment(段).
:any 將匹配一個包含任何字符的segment.

 

------緩存---------------------------------------------------------
$this->output->cache(n);
只需將上面的代碼放在你的controller的function中的任何位置:
其中 n 是你希望緩存更新的 分鐘 數。

注意:Benchmark 標籤在使用了緩存的頁面仍然可用。
警告: 由於CI存儲緩存文件的方式,只有通過 view 文件的輸出才能被緩存。
如果你不再想使用緩存,僅需將上面的代碼從你的controller裏面刪除即可。
注意: 這樣做並不能讓緩存文件立即消失,它將會自動過期並被刪除。
如果你想立即刪除那些文件,就必須自己動手了。

 

------激活分析器(調試,優化)----------------------------------------
$this->output->enable_profiler(TRUE);
$this->output->enable_profiler(FALSE);

 

------安全---------------------------------------------------------
1.過濾不良數據. 
2.驗證數據以確保符合正確的類型, 長度, 大小等. 
3.在提交數據到你的數據庫之前將其轉換.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章