🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 第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');