2012-03-26 14 views
6

Chciałbym wiedzieć, jeśli jego możliwości, aby usunąć bieżące informacje przechowywane w header_list()Wyczyść wcześniej ustawione nagłówki php

if(headers_sent()){ 
    foreach(headers_list() as $header){ 
     header_remove($header); 
    } 
} 
var_dump(headers_list()); 
+0

Po nagłówku zostały wysłane? – MitMaro

+0

Jeśli nagłówki są wysyłane, nie ma sensu ich usuwać (jeśli możesz), ponieważ ... one już zostały wysłane. – Hamish

+0

możliwe zgodnie z [php.net] (http://php.net/header_remove), ale tylko od wersji 5.3.0 - i możesz nawet usunąć nagłówki wygenerowane przez samego php – poncha

Odpowiedz

14

headers_sent wskazuje, że jest zbyt późno, aby usunąć nagłówki. Są już wysłane. Stąd nazwa funkcji.

To, czego potrzebujesz, to sprawdzić, czy nagłówki nie mają jeszcze , a nie. Wtedy wiesz, że możesz je bezpiecznie modyfikować.

if (!headers_sent()) { 
    foreach (headers_list() as $header) 
    header_remove($header); 
} 
4

można usunąć nagłówki tylko jeśli nie są one już wysłane. Jeśli headers_sent jest true, nagłówki już wyłączyły się i nie można ich już usunąć.

Powiązane problemy