English | 简体中文 | 繁體中文
查询

Swoole\Http\Response::rawcookie()函数—用法及示例

「 在Swoole HTTP 响应中设置原始的 Cookie 」


函数名:Swoole\Http\Response::rawcookie()

适用版本:Swoole 2.0.0 及以上版本

函数说明:该函数用于在Swoole HTTP 响应中设置原始的 Cookie。与PHP的setcookie()函数类似,但是rawcookie()可以在不需要发送HTTP头的情况下设置Cookie。

函数原型:public Swoole\Http\Response::rawcookie(string $name, string $value = null, int $expire = 0, string $path = '/', string $domain = null, bool $secure = false, bool $httponly = false)

参数说明:

  • $name: 必需,Cookie的名称。
  • $value: 可选,Cookie的值。默认为null。
  • $expire: 可选,Cookie的过期时间。默认为0,表示会话结束时过期。
  • $path: 可选,Cookie的路径。默认为'/'。
  • $domain: 可选,Cookie的域名。默认为null,表示当前域名。
  • $secure: 可选,是否仅通过HTTPS传输Cookie。默认为false。
  • $httponly: 可选,是否限制Cookie只能通过HTTP协议访问。默认为false。

示例:

$response = new Swoole\Http\Response();

// 设置一个名为"username"的Cookie,值为"john"
$response->rawcookie('username', 'john');

// 设置一个名为"token"的Cookie,值为"abc123",过期时间为1小时,路径为'/api',域名为'.example.com',仅通过HTTPS传输
$response->rawcookie('token', 'abc123', time() + 3600, '/api', '.example.com', true);

// 设置一个名为"session_id"的Cookie,值为"xyz789",过期时间为会话结束
$response->rawcookie('session_id', 'xyz789');

注意事项:

  • rawcookie()函数必须在发送HTTP响应之前调用,否则无法生效。
  • 在同一个HTTP响应中,可以多次调用rawcookie()函数来设置多个Cookie。
  • 如果需要使用Swoole的协程特性,确保在协程内调用rawcookie()函数。
  • 如果想要删除一个Cookie,可以调用rawcookie()函数并将过期时间设置为一个过去的时间。例如:$response->rawcookie('cookie_name', null, time() - 3600)。
补充纠错
热门PHP函数
分享链接