headers_sent
указывает, что слишком поздно удалять заголовки. Они уже отправлены . Отсюда и название функции.
То, что вы хотите - это специально проверить, отправлены ли заголовки , а не . Тогда вы знаете, что изменять их безопасно.
if (!headers_sent()) {
foreach (headers_list() as $header)
header_remove($header);
}