$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辅助类
$this->load->helper('captcha');
常用的JavaScript设计模式
-
单体模式
-
工厂模式
-
例模式
函数
-
函数的定义
-
局部变量和全局变量
-
返回值
-
匿名函数
-
自运行函数
-
闭包