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 配置 ========================================================= ...
随机推荐
- Android学习笔记(十二)——使用意图传递数据的几种方式
使用意图传递数据的几种方式 点此获取完整代码 我们除了要从活动返回数据,也经常要传递数据给活动.对此我们能够使用Intent对象将这些数据传递给目标活动. 1.创建一个名为PassingData的项目 ...
- php中的self关键字和this关键字的区别和联系
php中的self关键字和this关键字的区别和联系 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能.利用OOP的思想进行PHP的高级编程 ...
- hdoj--5532--Almost Sorted Array(正反LIS)
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 在 Ubuntu 15.04 上安装 Android Studio(极其简单)
sudo apt-add-repository ppa:paolorotolo/android-studio sudo apt-get update sudo apt-get install andr ...
- linux的chmod,chown命令 详解
指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案 ...
- 方括号在sqlserver中的作用
我也很无奈啊... 竟然还有这个技能...建个表试试? 显然不行... 再检查下表结构吧 前方小前辈有点坑... selelct [group] from tablle 可以了√ 应该是把[方括号 ...
- Js基础知识(作用域、特殊函数---自调、回调、作为值的函数)
15.作用域 概念: 规定变量或函数的可被访问的范围和生命周期 分类: 全局作用域 -就是指当前整个页面环境: 局部作用域(函数作用域) -就是指某个函数内部环境 l 变量的作用域 全局变量 - 定义 ...
- C#实现软件监控外部程序运行状态的方法
本文实例讲述了C#实现软件监控外部程序运行状态的方法.分享给大家供大家参考.具体方法如下: 需要外挂一个程序,用于监控另一个程序运行状态,一旦检测到另一程序关闭,就触发一个事件做其他处理. using ...
- hdu 1394 Minimum Inversion Number 【线段树求逆序数】
之前写过树状数组的,再用线段树写一下--- #include<cstdio> #include<cstring> #include<iostream> #inclu ...
- Unity设置Turorials-Wide布局
在bilibili上看关于UGUI官翻视频时,很喜欢对方的布局,自己照着改了下,改的步骤如下: 1, 先选用 2by3 布局 2, 把Project面板拖到Hierarchy下边 3, 把2列布局改成 ...