× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

Http\Response->cookie

设置HTTP响应的cookie信息。此方法参数与PHPsetcookie完全一致。

function Http\Response->cookie(string $key, string $value = '', int $expire = 0 , string $path = '/', string $domain  = '', bool $secure = false , bool $httponly = false, string $samesite = '');

cookie设置必须在end方法之前

$samesite 参数从 v4.4.6 版本开始支持

注意事项

  • 底层自动会对$value进行urlencode编码,可使用rawCookie关闭对$value的编码处理
  • 底层允许设置多个相同$keyCOOKIE

  • wuzhc

    (1) 当expire设置某个值时,会失败 (2) path默认值不是"/", 而是当前运行脚本路径目录

  • 赞

    请问怎么清空所有cookie呢?

  • Smile

    一楼 当expire设置某个值时,会失败 这个设置的时间 是时间戳格式 比如 3600秒后过期 需要使用的是 time()+3600

  • Dark_Pony

    Warning: Swoole\Http\Response::cookie(): Expiry date can't be a year greater than 9999 in /home/work/hdtocs/swoole_mooc/demo/server/http_server.php on line 11

    第11行的代码是:$response->cookie("singwa3", "xsssss", time() + 1800); 奇了怪了

  • 888

    @wuzhc 说的确实 貌似 这个问题还没有修复? 怎么搞 目前

  • 888

    使用 time()+3600 得 path = '/' 就可以 sorry 已经修复了