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
原创粉丝点击