thinkphp5.0学习(十一):TP5.0杂项
来源:互联网 发布:app源码 带后台数据库 编辑:程序博客网 时间:2024/06/05 06:17
一、缓存
1.缓存的作用
减少数据库压力
用户交互比较少
2.TP对缓存的支持
支持缓存类型包括file,memcache,wincache,sqlite,redis和xcache
3.缓存设置(application\config.php)
'cache' => [ // 驱动方式 'type' => 'File', // 缓存保存目录 'path' => CACHE_PATH, // 缓存前缀 'prefix' => '', // 缓存有效期 0表示永久缓存 'expire' => 0, ],
4.使用
1.设置缓存
Cache::set("userData",$data,200);cache(名字,值,时间);
2.读取缓存
dump(Cache::get("userData"));dump(cache("userData"));
3.删除缓存
dump(Cache::rm("userData"));cache("userData",null);
4.清空缓存
Cache::clear();
5.缓存的使用
public function huancun(){ // 从缓存中获取数据 if($data=cache('userData')){ // 如果数据存在 }else{ // 如果缓存中没有数据 $data=Db::table("user")->select(); cache("userData",$data,20); } // 分配数据 $this->assign("data",$data); // 加载页面 return $this->fetch();}
二、Session
1.设置session
// 即使成功了也是返回nullpublic function setSession(){ //系统方法 dump(Session::set("name","甜甜")); //助手函数 session("name","100");}
2.获取session
public function getSession(){ //系统方法 dump(Session::get("name")); //助手函数 session("name");}
3.判断session
dump(Session::has("name1"));dump(session("?name"));
4.删除session
dump(Session::delete("name"));//删除成功返回nulldump(session("name",null));
5.清空session
Session::clear();session(null);
三、Cookie
1.设置cookie
Cookie::set("name","ltt");Cookie::set("info","wanli",50);cookie('time','2017-10-25');cookie('age',5,50);
2.获取cookie
//失败返回空dump(Cookie::get("name"));dump(Cookie::get("info"));dump(cookie("time"));dump(cookie("age"));
3.判断cookie是否设置
dump(Cookie::has("name"));dump(Cookie::has("info"));dump(cookie("?time"));dump(cookie("?age"));
4.删除cookie
Cookie::delete("name");cookie("time",null);
5.清空cookie
Cookie::clear();cookie(null);
四、分页
1.控制器中
//paginate第二个参数带上true就是只显示上一页和下一页,不显示中间页数$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()}
五、文件上传
1.单文件上传
1.页面中
<form action="{:url('upload')}" method="post" enctype="multipart/form-data"> <p> File: <input type="file" name="file"></input> </p > <p><input type="submit" value="提交"></input></p ></form>
2.控制器中
public function upload(Request $request){// 接收文件 $file=$request->file("file"); // 进行文件上传 if($info=$file->move('./upload/')){ dump($info->getsaveName()); }else{ dump($info->getError()); } // dump($file);}
2.多文件上传
1.页面中
<form action="{:url('uploads')}" method="post" enctype="multipart/form-data"> <p> File: <input type="file" name="file[]"></input> <input type="file" name="file[]"></input> <input type="file" name="file[]"></input> </p > <p><input type="submit" value="提交"></input></p ></form>
2.控制器中
public function uploads(Request $request){ // 获取用户上传信息 $files=$request->file("file"); foreach ($files as $key => $file) { if ($info=$file->move("./upload/")) { dump($info->getsaveName()); }else{ dump($info->getError()); } } // dump($files);}
六、验证码
1.首先判断系统是否支持验证码(项目文件\vendor\topthink\think-captcha)
如果不支持使用composer安装
2.使用
1.页面中
<form action="{:url('check')}" method="post"> <p> 验证码:{:captcha_img()} < img src="{:captcha_src()}"> </p > <p> 请输入验证码: <input type="text" name="code" ></input> </p > <p> <input type="submit" value="提交"></input> </p ></form>
2.控制器中判断验证码
public function check(){ $code=input('post.code'); // 判断验证码是否正确 if(captcha_check($code)){ echo "ok"; }else{ echo "error"; }}
3.验证码相关设置
// 应用配置 'captcha'=>[ 'codeSet'=>'123', // 验证码的字符集合 'useZh'=>true, // 使用中文 'zhSet'=>"我爱你", // 验证码中文字符集合 'useImgBg' => false, // 使用背景图片 'fontSize' => 25, // 验证码字体大小(px) 'useCurve' => true, // 是否画混淆曲线 'useNoise' => true, // 是否添加杂点 'imageH' => 0, // 验证码图片高度 'imageW' => 0, // 验证码图片宽度 'length' => 5, // 验证码位数 'fontttf' => '', // 验证码字体,不设置随机获取 'bg' => [243, 251, 254], // 背景颜色 'reset' => true, // 验证成功后是否重置 ],
七、图片处理
1.读取图片
$image=Image::open("./img/c.jpg");
2.获取基本信息
dump($image->width());dump($image->height());dump($image->type());dump($image->size());dump($image->mime());
3.图片的裁剪
// crop(300,300,100,100);从坐标100,100的位置裁剪宽300高300的图片 //裁剪默认从顶点开始裁剪 $image->crop(300,300)->save("./img/cai.jpg"); // 设置裁剪位置 $image->crop(300,300,100,100)->save("./img/cai1.jpg");
4.图片的缩放
// 默认等比例变化 // $image->thumb(300,300)->save('./img/th.jpg'); //常量,标识缩略图等比例缩放类型 const THUMB_SCALING = 1; //常量,标识缩略图缩放后填充类型 const THUMB_FILLED = 2; //常量,标识缩略图居中裁剪类型 const THUMB_CENTER = 3; //常量,标识缩略图左上角裁剪类型 const THUMB_NORTHWEST = 4; //常量,标识缩略图右下角裁剪类型 const THUMB_SOUTHEAST = 5; //常量,标识缩略图固定尺寸缩放类型 const THUMB_FIXED = 6; $image->thumb(300,300,2)->save('./img/th.jpg');
5.图片的翻转
$image->flip()->save("./img/fan.jpg");
6.图片的旋转
//rotate()默认顺时针转90度$image->rotate(180)->save("./img/xuanzhuan.jpg");
7.添加水印
// 图片水印 // 位置默认右下角,1是左上角,5是正中间,50是透明度 $image->water("./img/logo3.png",1,50)->save("./img/water.jpg");// 文字水印 $image->text("李甜甜",'FZSTK.TTF',28,'#ff0000')->save("./img/text.jpg");
阅读全文
0 0
- thinkphp5.0学习(十一):TP5.0杂项
- thinkphp5.0学习(五): TP5.0控制器
- thinkphp5.0学习(九):TP5.0视图和模板
- thinkphp5.0学习(十):TP5.0验证器
- thinkphp5.0学习(二):tp5.0架构和运转流程
- Windows下thinkphp5.0(tp5)的memcache数据缓存技术的实现过程
- ThinkPHP5.0学习(一)
- ThinkPHP5.0学习笔记
- ThinkPHP5.0版本学习
- thinkphp5.0学习(一):准备
- thinkphp5.0学习(三):配置相关
- thinkphp5.0学习(七):数据库操作
- thinkphp5.0学习(八):模型
- Android程序员学PHP开发(33)-ThinkPHP5.0(5)命名空间与TP5-PhpStorm
- 《TP5.0学习笔记---模型篇(一)》
- 《TP5.0学习笔记---模型篇(二)》
- 《TP5.0学习笔记---模型篇(三)》
- thinkphp5.0
- MATLAB 给定一组二维坐标,拟合曲线并且取曲线上任意点的坐标方法,或者均分定义域,得到对应值方法
- error LINK1123
- <Unknown column 'card_id' in 'order clause'>
- Javascript学习笔记(对象)
- 内排序——插入排序—直接插入(稳定)—希尔(不稳定)
- thinkphp5.0学习(十一):TP5.0杂项
- Cmake知识----编写CMakeLists.txt文件编译C/C++程序
- Canny算子检测轮廓
- GreenDao查询数据带缓存
- [spark streaming] DStream 和 DStreamGraph 解析
- Java编程思想(Thinking in Java)阅读笔记(仅供自身学习,持续更新)
- 从浅到深了解ArrayList
- 搭建个人博客-hexo+github详细完整步骤
- django中用外键还是非外键?建议尽量用外键。