ThinkPHP5.0框架开发--第11章 TP5.0 杂项

时间:2023-03-08 17:21:57
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');