codeigniter类库和辅助函数的使用

    技术2025-07-08  11

    $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.0echo $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/FALSEset_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/123echo base_url(); //config.php 中设定的 base_urlecho current_url(); //当前页echo uri_string(); //当前页的URI段echo index_page(); //config.php 中设定的 index_pageecho anchor('news/local/123', 'My News', array('title' => 'The best news!'));redirect('/login/form/', 'refresh'); //刷新,默认是跳转:locationredirect('/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.在提交数据到你的数据库之前将其转换.

    最新回复(0)