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辅助类
总结
技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】