ThinkPHP5.0框架开发--第11章 TP5.0 杂项
ThinkPHP5.0框架开发--第11章 TP5.0 杂项
第11章 TP5.0 杂项
===============================================
今日学习
1、缓存
a) 缓存的作用:
减少数据库压力
用户交互比较
b) TP对缓存的支持
支持的缓存类型包括file、memcache、wincache、sqlite、redis和xcache。
c) 缓存设置(C:\AppServ\www\tp5\application\config.php)
'cache' => [
// 驱动方式
'type' => 'File',
// 缓存保存目录
'path' => CACHE_PATH,
// 缓存前缀
'prefix' => '',
// 缓存有效期 0表示永久缓存
'expire' => 0,
],
d) 使用
1、设置缓存
Cache::set(名字,值,时间);
cache(名字,值,时间);
# 返回值 如果设置成功 true
# 如果设置失败 false
2、读取缓存
Cache::get(名字);
cache(名字);
# 返回值 如果获取成功 获取到的数据
# 如果获取失败 false
3、删除缓存
Cache::rm('UserData');
cache('UserData',NULL);
# 返回值 删除成功 true
# 删除失败 false
4、清空缓存
Cache::clear();
# 返回值 清空缓存成功 true 否则 false
5、使用缓存
// 从缓存中获取数据
if ($data=cache('UserData')) {
// 如果数据存在
}else{
// 如果缓存中没有数据
$data=Db::table('User')->select();
cache('UserData',$data,20);
}
2、Session
1、设置session
Session::set('name','云知梦');
session('name','100');
2、获取session
Session::get('name');
session('name');
# 返回值 如果获取成功 返回获取到的值 如果失败 NULL
3、判断是否设置
Session::has('name1');
session("?name");
# 返回值 如果存在返回True 如果不存在 false
4、删除session
Session::delete('data');
session('name',null);
# 删除session 无返回值
5、清空session
Session::clear();
session(null);
3、Cookie
1、设置Cookie
Cookie::set('name','云知梦');
Cookie::set('info','云知梦只为有梦想的人',50);
cookie('time','2017-10-25');
cookie('age',5,50);
2、获取Cookie
Cookie::get('name');
cookie('time');
# 获取Cookie 如果成功 返回获取值,如果失败返回NULL
3、判断Cookie
Cookie::has('name');
cookie("?name");
# 判断cookie是否设置,如果设置返回true,如果没有设置返回false
4、删除Cookie
Cookie::delete('name');
cookie('name',null);
5、清空Cookie
Cookie::clear();
cookie(null);
4、分页
1、控制器中如何书写
// 查询数据
// 分页效果
$data=Db::table('user')->paginate(3);
// 简化的分页效果
$data=Db::table('user')->paginate(3,true);
// 分配数据
$this->assign('data',$data);
// 加载页面
return $this->fetch();
2、页面中如何书写
{volist name="data" id="val"}
<tr>
<td>{$val.id}</td>
<td>{$val.name}</td>
<td>{$val.pass}</td>
</tr>
{/volist}
{$data->render()}
5、文件上传
1、页面
<form action="{:url('upload')}" method="post" enctype="multipart/form-data">
<p>
File:
<input type="file" name="file" id="">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
2、控制器
public function upload(Request $request){
// 接收数据
$file=$request->file('file');
// 进行文件上传
if ($info=$file->move('./upload/')) {
dump($info->getsaveName());
}else{
dump($info->getError());
}
}
6、验证码
1、首先判断系统是否支持验证码
2、使用
1) 页面中
<form action="{:url('check')}" method="post">
<!-- {:captcha_img()} -->
<img src="{:captcha_src()}" alt="">
<input type="text" name="code" id="">
<input type="submit" value="提交">
</form>
2) 判断验证码
$code=input('post.code');
// 判断验证码是否正确
if (captcha_check($code)) {
echo "okokok";
}else{
echo "error";
}
3、验证码相关设置
'captcha'=>[
'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
// 验证码字符集合
'expire' => 1800,
// 验证码过期时间(s)
'useZh' => false,
// 使用中文验证码
'zhSet' => '们以我',
// 中文验证码字符串
'useImgBg' => false,
// 使用背景图片
'fontSize' => 25,
// 验证码字体大小(px)
'useCurve' => true,
// 是否画混淆曲线
'useNoise' => true,
// 是否添加杂点
'imageH' => 0,
// 验证码图片高度
'imageW' => 0,
// 验证码图片宽度
'length' => 5,
// 验证码位数
'fontttf' => '',
// 验证码字体,不设置随机获取
'bg' => [243, 251, 254],
// 背景颜色
'reset' => true,
// 验证成功后是否重置
]
7、图片处理
1、读取图片
$images=Image::open("./img/c.jpg");
2、获取基本信息
// 宽度
dump($images->width());
// 高度
dump($images->height());
// 类型
dump($images->type());
// 宽和高
dump($images->size());
// mime
dump($images->mime());
3、图片裁剪
crop(100,200,300,350);
// 从(300,350)的位置开始裁剪,裁剪100,200 大小,默认从(0,0)位置开始裁剪
// 裁剪默认从顶点开始裁剪
$images->crop(300,300)->save("./img/cai.jpg");
// 设置裁剪位置
$images->crop(300,300,100,100)->save('./img/cai1.jpg');
4、图片缩放
// 图片缩放 默认是等比例缩放,可以进行设置
// //常量,标识缩略图等比例缩放类型
// constTHUMB_SCALING???=?1
// //常量,标识缩略图缩放后填充类型
// constTHUMB_FILLED????=?2;
// //常量,标识缩略图居中裁剪类型
// constTHUMB_CENTER????=?3;
// //常量,标识缩略图左上角裁剪类型
// constTHUMB_NORTHWEST?=?4;
// //常量,标识缩略图右下角裁剪类型
// constTHUMB_SOUTHEAST?=?5;
// //常量,标识缩略图固定尺寸缩放类型
// constTHUMB_FIXED?????=?6;
$images->thumb(300,300,2)->save('./img/th.jpg');
5、图片翻转
$images->flip()->save("./img/fan.jpg");
6、图片旋转
$images->rotate(180)->save("./img/xuan.jpg");
7、水印
// 图片水印
$images->water("./img/logo.png",5,50)->save("./img/water.jpg");
// 文字水印
$images->text('123',"msyh.ttf",20,"#ff0000")->save('./img/text.jpg');
ThinkPHP5.0框架开发--第11章 TP5.0 杂项的更多相关文章
- ThinkPHP5.0框架开发--第5章 TP5.0 控制器
ThinkPHP5.0框架开发--第5章 TP5.0 控制器 第5章 TP5.0 控制器 ============================================== 上次复习 1.路 ...
- ThinkPHP5.0框架开发--第4章 TP5.0路由
ThinkPHP5.0框架开发--第4章 TP5.0路由 第4章 TP5.0 路由 ================================================== 上次复习 1. ...
- ThinkPHP5.0框架开发--第1章 Tp5.0安装
ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...
- ThinkPHP5.0框架开发--第2章 TP5.0架构
ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...
- ThinkPHP5.0框架开发--第9章 TP5.0视图和模板
ThinkPHP5.0框架开发--第9章 TP5.0视图和模板 第9章 TP5.0视图和模板 ===================================================== ...
- ThinkPHP5.0框架开发--第8章 TP5.0 模型
ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...
- ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
- ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应
ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应 第6章 TP5.0 请求和响应 ===================================== 上次复习 1.新建控制器 ...
- ThinkPHP5.0框架开发--第3章 TP5.0 配置
ThinkPHP5.0框架开发--第3章 TP5.0 配置 第3章 TP5.0 配置 ========================================================= ...
随机推荐
- UVA 11987 Almost Union-Find 并查集单点修改
Almost Union-Find I hope you know the beautiful Union-Find structur ...
- php匿名函数和可变参数函数
php匿名函数和可变参数函数 简介 直接上代码了: <?php $test1 = function($value) { echo $value; }; $test1('HelloWorld'); ...
- (转)用Lottie制作动画,我的月薪翻了一番!!
Lottie是Airbnb发布的开源动画库. 帮助动效落地.学会使用Lottie,会极大地提高工作效率. Lottie是一种新的开发动画的方式. 学会使用Lottie,会极大改善你和开发小哥哥撕逼的情 ...
- php-fpm配置笔记
php-fpm配置不当,导致服务器经常出现502错误,上个学期多次调整都没有解决,网上找来资料,大都是增加max_children,可是我都加到顶了,php-fpm log里面还是有大量的警告: ee ...
- C# 正则表达式
C# 正则表达式 正则表达式 是一种匹配输入文本的模式..Net 框架提供了允许这种匹配的正则表达式引擎.模式由一个或多个字符.运算符和结构组成. 定义正则表达式 下面列出了用于定义正则表达式的各种类 ...
- C#.NET编码规范
一. 环境设置 首先去除开发环境中的一些选项如下: 图一 图二 二. 命名规范 1) 通用性 l 标识的总长度不要超过32个字符. l 标识符的基本语法是以字母和_开始,由字母数字及下划线组成的单词 ...
- Chosen:Select 选择框的华丽变身
HTML Form 表单里的各种组件,例如文本输入框,textarea,按钮等,都可以通过CSS或其它技术进行美化,让它们看起来很漂亮了,唯独下拉列表选项框(select box),不管你怎么做,它摆 ...
- Android中的事件分发机制
Android中的事件分发机制 作者:丁明祥 邮箱:2780087178@qq.com 这篇文章这周之内尽量写完 参考资料: Android事件分发机制完全解析,带你从源码的角度彻底理解(上) And ...
- addFooterView(v)与 addHeaderView(v)之后 头或者尾部没有加上去
myExpandableListView.addHeaderView(headView); myExpandableListView.addFooterView(footerView); 原因很简单: ...
- win10 MongoDB安装
1.下载地址https://www.mongodb.com/download-center#community 2.安装步骤 点击next同意安装,下面这一步选择Custom 自定义目录 注意:在这一 ...