1

同じ名前の特定のヘッダーを複数回設定しています。例えば

header("Set-Cookie: Foo=bar");
header("Set-Cookie: Bar=foo");
header("Set-Cookie: Baz=bob");

その後、「Set-Cookie: Bar」のみを削除し、他のものは削除したくありません。これを行う方法?

header_remove「Set-Cookie」という名前を指定できますが、Cookie「Set-Cookie: Foo」を指定できないため、ここでは機能しません。

4

1 に答える 1

2

それは良くありませんが、うまくいきます:

解決策は、すべてのヘッダーをコピーし、すべて削除し、フィルタリングして、再度作成することです。

$headers = headers_list();
header_remove(); // removes all headers
foreach($headers as $h) {
    if (!preg_match("/^Set-Cookie: Bar$/", $h)) {
        header($h);
    }
}
于 2013-03-21T16:52:54.330 に答える