thinkphp5.0学习(十一):TP5.0杂项

一、缓存

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
// 即使成功了也是返回null
public 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"));
//删除成功返回null
dump(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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值