编辑 示例中的cookie来自curl请求
原问题: 我想从 php 获取所有不同的 cookie,然后使用 chrome 插件在网站上设置 cookie
Set-Cookie: ref_code=__default__; expires=Wed, 07-Jan-2026 07:55:57 GMT; Max-Age=315359999; path=/; domain=.somesite.com; secure; httponly
Set-Cookie: usertype=Unlogged-User; expires=Wed, 07-Jan-2026 07:55:57 GMT; Max-Age=315359999; path=/; domain=.somesite.com; secure
下面的代码将获取 cookie,但不包括 expires 、 Max-Age 指令等...但我也需要所有这些
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);
//var_dump($matches);
$cookies = array();
foreach ($matches[1] as $item) {
parse_str($item, $cookie);
$cookies = array_merge($cookies, $cookie);
}
我 json_encode
$cookies
数组,然后将其传递给扩展程序。
考虑到chrome.cookie
按以下顺序设置参数,如何使用php高效获取所有cookie,然后使用js操作json来设置cookie
最佳答案
尝试在正则表达式中添加“*”:
^Set-Cookie:\s*([^;]*;)*([^;]*)$
如果没有它,它会在第一个“;”处结束
如果 Set-Cookie: 之后始终至少有 1 个空格,那么这似乎有效:
preg_match_all("/\s+([^;]*;)/", $result, $matches);
关于javascript - 在php中捕获多个cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34703523/