Как узнать, какой код ответа HTTP и заголовки отправляются перед их отправкой - PullRequest
0 голосов
/ 06 марта 2012

По сути, я пишу плагин WordPress. Первая функция, которую выполняет мой плагин, это определить, какой код ответа HTTP и заголовки планируется отправить (перед их отправкой).

Исходя из кода состояния http, он может поставить хук и изменить HTTP-ответ на основании других вещей.

Это мой первый плагин, который я пишу, и вы можете догадаться, мой опыт в этом - я все еще знаком с основами написания плагинов.

Ответы [ 3 ]

2 голосов
/ 06 марта 2012

Вы должны использовать сочетания headers_sent () и headers_list (), проверить, не отправляются ли заголовки с первым, итерировать результаты, полученные вторым, и изменять их в соответствии с вашей логикой

2 голосов
/ 06 марта 2012

см. headers_list() и http_response_code().

Обратите внимание, что http_response_code() является новым и может быть недоступно в вашей версии PHP. Нет другого способа обнаружить это. Сожалею. Но если вы не изменили его самостоятельно, код состояния должен быть «200 OK», всегда.

/* get headers and HTTP status code (which should be always 200, 
   if you didn't change it before calling this code)  */

if (!headers_sent()) {
    $headers = headers_list();
    $status = http_response_code();
    // change if necessary
}
else {
    // oh noes, cannot change headers anymore
}
2 голосов
/ 06 марта 2012

Функция headers_list выдаст вам список всех заголовков, отправленных или готовых к отправке. Вы можете определить, были ли они уже отправлены с помощью функции headers_sent, но я не думаю, что вы можете гарантировать их перехват до того, как они будут отправлены. Хотя я могу ошибаться по этому поводу - это возможно при буферизации вывода, но я никогда не изучал это.

...