2012-03-26 11 views
6

Vorrei sapere se il suo possibile per cancellare le informazioni correnti memorizzate nel header_list()intestazioni serie ben definita in precedenza php

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

Dopo che le intestazioni sono state inviate? – MitMaro

+0

Se le intestazioni vengono inviate, non è molto importante rimuoverle (se è possibile), perché ... sono già state inviate. – Hamish

+0

possibile secondo [php.net] (http://php.net/header_remove), ma solo dalla versione 5.3.0 - e puoi anche rimuovere le intestazioni generate da php stesso – poncha

risposta

14

headers_sent indica che è troppo tardi per rimuovere le intestazioni. Sono già inviati. Da qui il nome della funzione.

Quello che vuoi è verificare in particolare se le intestazioni hanno non stato inviato ancora. Allora sai che è sicuro modificarli.

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

È possibile rimuovere le intestazioni solo se non sono già inviati. Se headers_sent è true, le intestazioni sono già uscite e non puoi più disinserirle.

Problemi correlati