PHP bir başlığı silme

4 Cevap php

Header not ayarlanır: Bir PHP oluşturulan dosyayı önbelleğe izin vermek için, emin, 'no-cache Pragma' yapmak istiyorum. Ancak, nasıl bir olasılıkla zaten ayarlanmış başlığını silerim?

Yani could mümkün olduğunu, kod birisi bir yere yazdı header('Pragma: no-cache'); ve şimdi eminim, başlık gönderilmedi yapmak istiyorum.

Bunu yapmak için yeterli:

header('Pragma:');

veya delete_header() (görünüşte, belgelenmemiş olması ya da iyi-gizli ederim) gibi bir şey var mı?

4 Cevap

header_remove() php 5.3 beri

header_register_callback() da yakında geliyor

Sen ikinci bir argüman ileterek önceden ayarlanmış bir başlık geçersiz header() yapabilirsiniz:

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

Giriş manual for header()

Bu soru eski ve zaten cevap olduğunu biliyorum. Ama bazı yanıtları yanlış izlenim ile millet bırakabilir. Gerisi sizin yanıt başlıkları içeriyorsa Pragma: no-cache kesinlikle aslında diğer ayarlara bakılmaksızın bir kaynak önbelleğe bir web tarayıcı engeller emin.

En az PHP 5.3 kullanıyorsanız Yani tabii, sen header_remove( 'Pragma' ); ile Pragma başlığı kaldırabilirsiniz.

Başlık tarayıcı üzerinde bir miktar etkisi olacaktır, aslında neredeyse evrensel ihmal edilir (ve tarafından döndürülen asla: - davranışlar spec tarafından tanımlanmış değildir 'Pragma' başlıkları çok tutulan rağmen 'no-cache Pragma' gönderme inanıyorum Kullanmış olduğunuz herhangi bir php kurulumu).

Içeriği önbelleğe DEĞİL tarayıcı anlatmak için üzerinden yapılan bir geçmişte bir tarih, bir no-cache değeri olan bir Cache-Control başlık veya bir tarafından (eğer sinsi olmak istiyorsanız) ile başlık sona eriyor 'Varies: Tarih' başlığı . Başlığının bu tür herhangi birinin yokluğunda istemci önbelleğe olmamalıdır.

Yani, tersine, bir sayfa önbelleklenebilecek olmak istiyorsanız, sona ve önbellek-Cntrol başlıkları ayarlayın.

C.