Какие заголовки разрешены в функциях? - PullRequest
0 голосов
/ 26 октября 2011

Какие типы заголовков разрешено устанавливать внутри функции? Можно ли установить тип MIME для изображения из функции?

Пример:

function createImage($parameters) {
    /**
     * Here process parameters
     */
    // Set header
    header ('Content-Type: image/png');
    // create the image an destroy it
}

Есть ли какие-либо преимущества или недостатки при настройке заголовка внутри функции? Каковы лучшие практики?

Спасибо за преимущество.

Ответы [ 3 ]

4 голосов
/ 26 октября 2011

Нет никаких технических ограничений, кроме обычного «заголовки уже отправлены», за исключением того, что большинство людей не ожидают, что функция изменит заголовки ответа, если она специально не разработана и не документирована для этого.

Лучшая практика - не делать это внутри функции, если не ясно, что заголовки модифицируются и что это не просто случайность как побочный эффект.

1 голос
/ 26 октября 2011

Пока вы не отправляете какие-либо данные в браузер, вы можете включить любой заголовок, какой захотите. Хотя для браузера не будет иметь никакого значения включение пользовательских заголовков, таких как X-What: Ever.

Чтобы избежать ошибок в случае, если вы случайно вывели данные ранее, используйте что-то вроде:

if (!headers_sent()) {
    header('Content-Type: image/png');
}

Преимущество использования этого метода заключается в том, что вам не нужно повторять header(..) каждый раз, когда вы создаете изображение для отправки в браузер.

Но, судя по приведенному ниже комментарию («создать изображение, уничтожить его»), не похоже, что вы хотите отобразить изображение в браузере (отображать в значении «отправить необработанное изображение», а не msgstr "показать страницу HTML с изображением на ней"). В этом случае не отправляйте header, так как это может запутать браузер.

0 голосов
/ 26 октября 2011

Какие заголовки разрешено устанавливать внутри функции?

Любой.

Вы не можете устанавливать заголовки после отправки контента, но не имеет значения, используете ли вы функцию или нет.

Есть ли какие-либо преимущества или недостатки при настройке заголовка внутри функции?

То же, что и для использования функций для чего-либо еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...