学科分类
目录
PHP基础

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所示。

img

图1 设置Cookie的响应头信息

在图1中,设置Cookie时,响应头信息中的“Set-Cookie:name=value”会在浏览器中保存Cookie,在浏览器中通过开发者工具查看Cookie。在开发者工具中切换到【Network】→【Cookie】,如图2所示。

img

图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);
点击此处
隐藏目录