Cookie
最后更新于:2022-04-02 01:54:31
## 概述
ThinkPHP采用`think\facade\Cookie`类提供Cookie支持。
## 配置
配置文件位于配置目录下的`cookie.php`文件,无需手动初始化,系统会自动在调用之前进行Cookie初始化工作。
## 基本操作
### 初始化
~~~
// cookie初始化
Cookie::init(['prefix'=>'think_','expire'=>3600,'path'=>'/']);
// 指定当前前缀
Cookie::prefix('think_');
~~~
支持的参数及默认值如下:
~~~
// cookie 名称前缀
'prefix' => '',
// cookie 保存时间
'expire' => 0,
// cookie 保存路径
'path' => '/',
// cookie 有效域名
'domain' => '',
// cookie 启用安全传输
'secure' => false,
// httponly设置
'httponly' => '',
// 是否使用 setcookie
'setcookie' => true,
~~~
### 设置
~~~
// 设置Cookie 有效期为 3600秒
Cookie::set('name','value',3600);
// 设置cookie 前缀为think_
Cookie::set('name','value',['prefix'=>'think_','expire'=>3600]);
// 支持数组
Cookie::set('name',[1,2,3]);
~~~
### 永久保存
~~~
// 永久保存Cookie
Cookie::forever('name','value');
~~~
### 判断
~~~
Cookie::has('name');
// 判断指定前缀的cookie值是否存在
Cookie::has('name','think_');
~~~
### 获取
~~~
Cookie::get('name');
// 获取指定前缀的cookie值
Cookie::get('name','think_');
~~~
### 删除
~~~
//删除cookie
Cookie::delete('name');
// 删除指定前缀的cookie
Cookie::delete('name','think_');
~~~
### 清空
~~~
// 清空指定前缀的cookie
Cookie::clear('think_');
~~~
>[danger] 如果不指定前缀,不能做清空操作
## 助手函数
系统提供了cookie助手函数用于基本的cookie操作,例如:
~~~
// 初始化
cookie(['prefix' => 'think_', 'expire' => 3600]);
// 设置
cookie('name', 'value', 3600);
// 获取
echo cookie('name');
// 删除
cookie('name', null);
// 清除
cookie(null, 'think_');
~~~
';