setrawcookie()

1. 定义

该函数与setcookie()函数类似,不同的只是该函数发送未经URL编码的cookie。 成功运行时返回TRUE,失败则返回FALSE。

注:

  • 该函数与输出HTTP头一样,在调用该函数之前不允许产生任何输出
  • Cookie值被保存在用户电脑中,不建议存储敏感信息

2. 语法

setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) : bool

3. 参数说明

参数 可选性 数据类型 描述
$name 必需 字符串 cookie名称
$value 可选 字符串 cookie值,默认为空字符串
$expire 可选 整型 cookie的过期时间,该参数为一个UNIX时间戳,例如十天后过期可以设置为time()+10*24*60*60strtotime('+10 days')
$path 可选 字符串 cookie的有效服务器路径。设置为/时表示对整个域名$domain都有效,设置为/user/时仅对$domainuser目录及其子目录有效。默认为仅对当前目录有效
$domain 可选 字符串 cookie的有效域名或子域名。设置为子域名(例如www.jisuapi.com时)表示对这个域名和它的三级域名(例如w3.www.jisuapi.com)有效;设置为域名(例如jisuapi.com)时对整个域名及其子域名都有效
$secure 可选 布尔值 是否仅通过安全的HTTPS连接来发送cookie值,默认为false,不仅
$httponly 可选 布尔值 是否仅通过HTTP协议来发送cookie值,默认为false,不仅

4. 示例

<?php

// setrawcookie()
// 与`setcookie()`函数类似,不同的只是该函数发送未经URL编码的`cookie`

/* 可以在浏览器的开发者工具 Network 的 Headers 部分的 Request Headers 的Cookie中看到设置的 cookie 值 */
setcookie('cookie', 'www.jisuapi.com/search?kw=书号查询', strtotime('+1 day'));
setrawcookie('rawcookie', 'www.jisuapi.com/search?kw=书号查询', strtotime('+1 day'));

/**
 * 在开发者工具中可以看到
 * cookie 的值为:www.jisuapi.com%2Fsearch%3Fkw%3D%E4%B9%A6%E5%8F%B7%E6%9F%A5%E8%AF%A2
 * rawcookie 的值为:www.jisuapi.com/search?kw=书号查询
 */

5. 延展阅读

  • setcookie():定义一个Cookie,并将其连同剩下的 HTTP 头一起发送给客户端