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. js 回调函数小例子

    js 回调函数小例子 <script> //将函数作为另一个函数的参数 function test1(){ alert("我是test1"); } function t ...

  2. SQL Server数据库性能优化

      开篇:    最近遇到了很多性能问题,一直没来的及总结,今天正好周末抽时间总结下: 对于稍微大点的公司或者说用户多一些的公司,说白了就是数据量较大的公司,在查询数据时往往会遇到很多瓶颈.这时就需要 ...

  3. User_Login_Register_Shopping 1.0

    #!/usr/bin/env python# -*- coding: utf-8 -*-# @File : user_login_register_shopping.py# @Author: Anth ...

  4. Java算法——数组

    * 已知一个数组int[98],该数组里面存储了0~99共100个数字中的98个,数字不重复,请用算法算出0~99中缺少的2个数字是哪两个? * 要求:数组自己用程序生成,数值介于0~99,相互之间不 ...

  5. 微信小程序 | 小程序的转发问题

    1.配置小程序页面静态转发信息 关于小程序转发问题,文档 在 page 页面填加了该监听函数,会在小程序右上角 ... 菜单中显示“转发”按钮: 监听函数需要 return {} 其中的内容配置转发信 ...

  6. json字符串与json对象的相互转换

    什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSO ...

  7. 将百度百科的机器学习词条中的一段关于机器学习的demo改用Java写了一遍

    这是引用的百度百科中关于机器学习的一段示例,讲述了通过环境影响来进行学习的例子. 下面是代码: import java.io.BufferedReader; import java.io.IOExce ...

  8. node.js连接数据库登录注册,修改用户(页面的ajax请求)

    首先给大家看一下目录结构,结构如下: index.html 首页(显示所有的用户信息) login.html 登录页 register.html 注册页 db.js 配置链接数据库参数 dbhelpe ...

  9. StatusBarUtils工具类

    import android.app.Activity; import android.app.Dialog; import android.content.Context; import andro ...

  10. Android 蓝牙4.0的连接和通讯

    1.加入权限 <uses-sdk android:minSdkVersion=" android:targetSdkVersion="/> <uses-featu ...