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. 【Java集合源代码剖析】LinkedList源代码剖析

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/35787253 您好.我正在參加CSDN博文大赛.假设您喜欢我的文章,希望您能帮我投一票,谢 ...

  2. 2015.05.04,外语,读书笔记-《Word Power Made Easy》 14 “如何谈论日常现象” SESSION 41

    1. people are the craziest animals bovine(['bәuvain] adj. (似)牛的, 迟钝的),像牛一样placid(['plæsid] adj. 安静的, ...

  3. NESTED LOOPS & HASH JOIN & SORT MERGE JOIN

    表连接方式及使用场合 NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择.nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查 ...

  4. ITWorld:2014年全球最杰出的14位编程天才

    近日,ITWorld 整理全球最杰出的 14 位程序员,一起来看下让我们膜拜的这些大神都有哪些?(排名不分先后) 1.Jon Skeet 个人名望:程序技术问答网站 Stack Overflow 总排 ...

  5. 双系统下Ubuntu安装教程

    一.下载Ubuntu镜像包 二.用老毛桃制作U盘启动盘 三.下载Universal USB Installer 下载后无需安装,直接运行Universal USB Installer, step1: ...

  6. C# 读取硬盘信息 ManagementClass类

    一.在很多情况下,你可能都需要得到微机的硬件信息.需要加上下面的这句话: using System.Management; 获取硬件信息,需先知道硬件参数信息: Win32_Processor, // ...

  7. FluentAPI配置

    基本 EF 配置只要配置实体类和表.字段的对应关系.表间关联关系即可. 如何利用 EF的高级配置,达到更多效果:如果数据错误(比如字段不能为空.字符串超长等),会在 EF 层就会报错,而不会被提交给数 ...

  8. (转)GPT磁盘与MBR磁盘区别

    摘要:   Windows 2008磁盘管理器中,在磁盘标签处右击鼠标,随磁盘属性的不同会出现“转换到动态磁盘”,“转换到基本磁盘”“转换成GPT磁盘”,“转换成MBR磁盘”等选项,在此做简单介绍.部 ...

  9. java文件名与class关系

    class与文件名没有必要关系但是public class是要绝对保持一致 例如:class test{ public static void main(String args[]){ System. ...

  10. Servlet的生命周期和Jsp的生命周期

    Servlet的生命周期: 1)构造方法(第1次访问) 2)init方法(第1次访问) 3)service方法 4)destroy方法 Jsp的生命周期 1)翻译: jsp->java文件 2) ...