Cooki的基本使用
Cookie的使用非常简单,最主要的两个步骤就是创建和获取Cookie。下面对其基本使用进行讲解。
在PHP中,使用setcookie()函数创建或修改Cookie,其基本语法格式如下。
bool setcookie(
string $name, // Cookie的名称(必须)
string $value = '', // Cookie的值(可选)
int $expire = 0, // Cookie的有效期(可选)
string $path = '', // Cookie在服务器端的路径(可选)
string $domain = '', // Cookie的有效域名(可选)
bool $secure = false, // 指定是否通过安全的HTTPS连接来传输(可选)
bool $httponly = false // 指定Cookie只能通过HTTP协议访问(可选)
)
接下来,创建cookie.php,通过代码演示setcookie()函数的使用方式,如下所示。
<?php
setcookie('name', 'value');
通过浏览器访问cookie.php,查看响应头信息,具体如图1所示。
图1 设置Cookie的响应头信息
在图1中,设置Cookie时,响应头信息中的“Set-Cookie:name=value”会在浏览器中保存Cookie,在浏览器中通过开发者工具查看Cookie。在开发者工具中切换到【Network】→【Cookie】,如图2所示。
图2 HTTP中的Cookie信息
在PHP中,使用超全局变量$_COOKIE可以读取Cookie。接下来,在Cookie.php添加代码读取Cookie中的信息,示例代码如下。
// 读取Cookie
var_dump($_COOKIE); // 输出结果:array(2) { ["name"]=> string(5) "value" }
从上述代码中可以看出,使用$_COOKIE可以直接获取Cookie中存储的内容。需要注意的是,当PHP第一次通过setcookie()函数创建Cookie时,$_COOKIE中没有这个数据,只有当浏览器下次请求并携带Cookie时,才能通过$_COOKIE获取到。
PHP中的超全局变量是系统预定好的变量,在一个脚本的全部作用域中都可用。
上面演示使用Cookie存储简单的数据,当需要设置多个值或数组时,可以在Cookie名后添加“[]”进行设置,示例代码如下。
// Cookie存储复杂数据
setcookie('user[name]', 'tom');
setcookie('user[age]', 30);
// 输出结果:array{["user"]=>array{["name"]=>"tom"["age"]=>"30"}}
var_dump($_COOKIE);