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 杂项的更多相关文章

  1. ThinkPHP5.0框架开发--第5章 TP5.0 控制器

    ThinkPHP5.0框架开发--第5章 TP5.0 控制器 第5章 TP5.0 控制器 ============================================== 上次复习 1.路 ...

  2. ThinkPHP5.0框架开发--第4章 TP5.0路由

    ThinkPHP5.0框架开发--第4章 TP5.0路由 第4章 TP5.0 路由 ================================================== 上次复习 1. ...

  3. ThinkPHP5.0框架开发--第1章 Tp5.0安装

    ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...

  4. ThinkPHP5.0框架开发--第2章 TP5.0架构

    ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...

  5. ThinkPHP5.0框架开发--第9章 TP5.0视图和模板

    ThinkPHP5.0框架开发--第9章 TP5.0视图和模板 第9章 TP5.0视图和模板 ===================================================== ...

  6. ThinkPHP5.0框架开发--第8章 TP5.0 模型

    ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...

  7. ThinkPHP5.0框架开发--第7章 TP5.0数据库操作

    ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...

  8. ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应

    ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应 第6章 TP5.0 请求和响应 ===================================== 上次复习 1.新建控制器 ...

  9. ThinkPHP5.0框架开发--第3章 TP5.0 配置

    ThinkPHP5.0框架开发--第3章 TP5.0 配置 第3章 TP5.0 配置 ========================================================= ...

随机推荐

  1. MongodDB用GridFS方式存取文件

    在实现GridFS方式前我先讲讲它的原理,为什么可以存大文件.驱动首先会在当前数据库创建两个集合:"fs.files"和"fs.chunks"集合,前者记录了文 ...

  2. 2015.04.19,外语,读书笔记-《Word Power Made Easy》 11 “如何辱骂敌人” SESSION 29

    1.the French drillmaster 法国国王路易十五手下的Jean Martinet将军,是Infantry(['infәntri] n. 步兵)的检察长,是一个非常严格的drillma ...

  3. NEU 1664 传送(最短路基础 堆优化Dijkstra)

    题目描述 小A最近喜欢上一款游戏:游戏把地图分了一些区域,这些区域可能会重叠,也可能不会. 游戏中有一项传送技能,改传送技能只能将在同一区域的两个地方使用.小A可以利用区域中重叠部分来实现从某一区域到 ...

  4. ThinkPHP5+Redis单例型购物车

    <?php /** * Redis + 单例型购物车 * param $basket 存储商品信息 * param $ins 存储实例化对象 */ namespace lib; use redi ...

  5. Noip蒟蒻专用模板

    目录 模板 数论 线性筛素数 线性筛欧拉 裴蜀定理 卢卡斯定理 矩阵快速幂 逆元 高斯消元 图论 割点 最小生成树 倍增 SPFA 负环 堆优化迪杰斯特拉 匈牙利 数据结构 树状数组 ST表 线段树 ...

  6. Python使用functools模块中的partial函数生成偏函数

    所谓偏函数即是规定了固定参数的函数,在函数式编程中我们经常可以用到,这里我们就来看一下Python使用functools模块中的partial函数生成偏函数的方法 python 中提供一种用于对函数固 ...

  7. Core篇——初探Core配置管理

    文章目录 1.命令行配置 2.Json文件配置 3.配置文件文本至C#对象实例的映射 4.配置文件热更新 5.总结 命令行的配置 我们首先来创建一个.net core 的控制台项目,然后引入.net ...

  8. ifame子页实现父页面刷新(或跳转到指定页面)

    <script>parent.location.replace('../D_DailyManager/Add.aspx?id=" + x + "');</scri ...

  9. form&method【POST~GET】

    <form.../>中method属性指定了该表单是以哪种方式提交请求,有两种方式:GET请求方式和POST请求方式,默认是GET请求方式.两种方式的区别:get方式的请求是在浏览器地址栏 ...

  10. usaco No Change, 2013 Nov 不找零(二分查找+状压dp)

    Description 约翰带着 N 头奶牛在超市买东西,现在他们正在排队付钱,排在第 i 个位置的奶牛需要支付 Ci 元.今天说好所有东西都是约翰请客的,但直到付账的时候,约翰才意识到自己没带钱,身 ...