# 第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');