CodeIgniter学习笔记 Item6--CI中的常规主题_ci中parent __construct();

3.CI中的路由

路由用于配置针对某些URL与项目中实际文件的对应关系,是的URL看起来更符合用户的习惯,又不用改变项目现有的结构,路由的配置文件是/application/config/routes.php,可以设置默认控制器和404错误页面

$route['default\_controller'] = 'welcome';
$route['404\_override'] = '';

更重要的功能是,如果我们要实现通过/index.php/news/4.html访问/index.php/article/show/1这样一个需求,可以在routes.php定义路由关系,将原始的URL转换成需要样式

$route['news/([\d]+)\.html] = 'article/show/$1';

这样对于所有负责正则表达式的URL,都会路由到新的路径,其中$1表示正则表达式中的第一个
用()括起来的部分

4.CI中的分页

首先加载分页类

$this->load->library('pagination');

然后设置分页属性

// 每页显示的数量
$config['page\_size'] = 10;
// 总数据量
$config['total\_rows'] = 200;
// 设置分页跳转页面的基础地址
$config['base\_url'] = site_url('index.php/user/test');
// 设置分页显示文字
$config['first\_link'] = '首页';
$config['next\_link'] = '下一页';
$config['prev\_link'] = '上一页';
$config['last\_link'] = '末页';

初始化分页类

$this->pagination->initialize($config);

创建链接并传递给视图

$data['links'] = $this->pagination->create\_links();
$this->load->view('test', $data);

通过URL获取偏移量拼装查询

$offset = (int)$this->load->uri->segment(3);
$sql = "SELECT \* FROM blog\_user limit $offset, $page\_size";

5.CI中的文件上传

首先通过控制器的方法跳转至视图

public function file()
{
    $this->load->helper('url');
    $this->load->view('file');
}

在视图中创建一个表单用于选择并上传文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="<?php echo site\_url('index.php/user/upload'); ?>" method="post" enctype="multipart/form-data">
        <input type="file" name="pic" />
        <input type="submit" name="submit" value="submit">
    </form>
</body>
</html>

其中,要注意第一个input的name属性,这个属性后面要用,在表单中将action设置为一个控制器方法,编写对应的控制器方法

public function upload()
{
    // 上传文件到服务器目录
    $config['upload\_path'] = './upload';
    // 允许上传哪些类型
    $config['allowed\_types'] = 'gif|png|jpg|jpeg';
    // 上传后的文件名,用uniqid()保证文件名唯一
    $config['file\_name'] = uniqid();

    // 加载上传库
    $this->load->library('upload', $config);
    // 上传文件,这里的pic是视图中file控件的name属性
    $result = $this->upload->do_upload('pic');
    // 如果上传成功,获取上传文件的信息
    if ($result) 
    {
        var_dump($this->upload->data());
    }
}

这样就完成文件上传了

6.CI中的Session

CI默认没有启动Session,而是用Cookie代替Session,首先Cookie只能保存4KB的数据,其次,在Session中保存数据马上就可以获取到,而Cookie中的数据要等到下次客户端请求时才能获取到。

首先加载Session类

$this->load->library('session');

然后通过set_userdata方法以键值对或关联数组的方式保存数据

$user = array('id' => 3, 'name'=>'dj');
$this->session->set_userdata('user', $user);

用userdata方法获取数据

$user = $this->session->userdata('user');

用unset_userdata方法删除数据

$this->session->unset_userdata('user');

如果要保存的数据只需要用一次,可以使用闪出数据,这种数据只对下次服务器请求可用,然后会自动清除,闪出数据用set_flashdata()方法设置

$this->session->set_flashdata('user', $user);

7.CI中的验证码

首先需要在入口文件的同级目录文件夹用于保存验证码图片,比如新建captcha目录

加载captcha辅助类

总结

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

片,比如新建captcha目录

加载captcha辅助类

总结

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值