系统内置了一个cookie函数用于支持和简化Cookie的相关操作,该函数可以完成Cookie的设置、获取、删除操作。 ## Cookie设置 ~~~ cookie('name','value'); //设置cookie cookie('name','value',3600); // 指定cookie保存时间 ~~~ 还可以支持参数传入的方式完成复杂的cookie赋值,下面是对cookie的值设置3600秒有效期,并且加上cookie前缀think_ ~~~ cookie('name','value',array('expire'=>3600,'prefix'=>'think_')) ~~~ 数组参数可以采用query形式参数 ~~~ cookie('name','value','expire=3600&prefix=think_') ~~~ 和上面的用法等效。 > 后面的参数支持`prefix,expire,path,domain和httponly(**3.2.2版本新增**)`五个索引参数,如果没有传入或者传入空值的话,会默认取`COOKIE_PREFIX`、`COOKIE_EXPIRE`、`COOKIE_PATH`、`COOKIE_DOMAIN`和`COOKIE_HTTPONLY`五个配置参数。如果只传入个别参数,那么也会和默认的配置参数合并。 支持**给cookie设置数组值**(采用JSON编码格式保存),例如: ~~~ cookie('name',array('value1','value2')); ~~~ ## Cookie获取 获取cookie很简单,无论是怎么设置的cookie,只需要使用: ~~~ $value = cookie('name'); ~~~ 如果没有设置cookie前缀的话 相当于 ~~~ $value = $_COOKIE['name']; ~~~ 如果设置了cookie前缀的话,相当于 ~~~ $value = $_COOKIE['前缀+name']; ~~~ 如果要获取所有的cookie,可以使用: ~~~ $value = cookie(); ~~~ 该用法相当于 ~~~ $value = $_COOKIE; ~~~ > 注意,该用法会返回所有的cookie而无论是否当前的前缀。 ## Cookie删除 删除某个cookie的值,使用: ~~~ cookie('name',null); ~~~ 要删除所有的Cookie值,可以使用: ~~~ cookie(null); // 清空当前设定前缀的所有cookie值 cookie(null,'think_'); // 清空指定前缀的所有cookie值 ~~~