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 1149 Bin Packing 二分+贪心
A set of n 1-dimensional items have to be packed in identical bins. All bins have exactly the samele ...
- POJ 3628 01背包 OR 状压
思路: 1.01背包 先找到所有奶牛身高和与B的差. 然后做一次01背包即可 01背包的容积和价格就是奶牛们身高. 最后差值一减输出结果就大功告成啦! 2. 搜索 这思路很明了吧... 搜索的确可以过 ...
- 鲜为人知的 Windows 技能
IE/Edge 竟然可以转换图片格式 SVG 转 PNG.SVG 转 BMP 在图片上点击右键,选择"图片另存为" Windows/Office 屏幕录制 office 竟然带有屏 ...
- 一个基于Vue.js+Mongodb+Node.js的博客内容管理系统
这个项目最初其实是fork别人的项目.当初想接触下mongodb数据库,找个例子学习下,后来改着改着就面目全非了.后台和数据库重构,前端增加了登录注册功能,仅保留了博客设置页面,但是也优化了. 一.功 ...
- Obj文件和Bin文件
本文导读:在用visual studio 编程时,会看到项目文件中含有bin和obj这两个文件夹,那么这两个文件夹具体包含一些什么东西的,具体作用是什么? 一.Bin文件夹 1.用来保存项目生成后程序 ...
- Python更换pip源,更换conda源
更换pip源: 1.在windows文件管理器中,输入 %APPDATA% 2.在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件 3.在新建的pip.ini文件中输入以下内 ...
- C/C++函数调用约定与this指针
关于 C/C++ 函数调用约定,大多数时候并不会影响程序逻辑,但遇到跨语言编程时,了解一下还是有好处的. VC 中默认调用是 __cdecl 方式,Windows API 使用 __stdcall 调 ...
- Visual Studio icon 含义
图片摘自:https://msdn.microsoft.com/en-us/library/y47ychfe.aspx
- CorelDRAW 2018新增功能介绍
2018年4月11日,CorelDRAW 2018正式对外发布,最新版设计软件包已经过全面更新,是近几年来发行的最强大版本,可协助绘图专业人士将创意转换为令人惊艳的专业视觉设计.CorelDRAW 2 ...
- WiFi相关基础概念
转自:https://blog.csdn.net/lbaihao/article/details/73250798 一.WiFi相关基础概念 1.什么是wifi 我们看一下百度百科是如何定义的: Wi ...