Как я могу использовать несколько типов содержимого заголовка PHP на одной странице? Это возможно? - PullRequest
2 голосов
/ 11 марта 2010

Можно ли использовать несколько типов заголовков в одном документе? Например:

header("Content-type: image/jpeg");
header('Content-Type: text/html; charset=utf-8');

возвращает всю страницу в виде текста / HTML ... в то время как

header('Content-Type: text/html; charset=utf-8');
header("Content-type: image/jpeg");

Возвращает всю страницу в виде изображения .... Как я могу использовать оба типа контента на одной странице? Я использую ob_start () вверху и ob_end_flush () в начале.

Ответы [ 6 ]

6 голосов
/ 11 марта 2010

Вы не можете. Но что вы можете сделать, это что-то вроде этого в вашем HTML:

<img src="my_img.php" />

Конечно, my_img.php будет PHP-файлом со строкой header("Content-type: image/jpeg"); и выводит ваше изображение.

4 голосов
/ 11 марта 2010

Нет, ресурс имеет только один тип носителя. HTTP допускает составные сообщения , которые могут содержать несколько объектов. Но это не широко поддерживается сегодняшним браузером.

1 голос
/ 11 марта 2010

Смысл content-type в том, чтобы сообщить браузеру, как обрабатывать запрос. Что вы ожидаете от браузера, если отправляете text/html и image/jpeg? Это должно быть одно или другое, это не может быть и то и другое. text/html является своего рода универсальным.

0 голосов
/ 14 сентября 2012

Будьте осторожны с параметрами, которые вы передаете файлу обертки, чтобы он нашел соответствующее изображение и ТОЛЬКО соответствующее изображение, а не / etc / passwd или любой другой файл.

Лучше жестко закодировать базовый каталог в сценарии и не принимать никакой иерархии во входных данных. Вероятно, лучше вообще не использовать настоящие имена файлов и выполнять поиск в таблице сопоставления (в базе данных, массиве в вашем скрипте или где-либо еще)

0 голосов
/ 20 февраля 2012

Я нахожу несколько странным, когда люди задаются вопросом, почему кто-то хотел бы сделать то, что они просят в первоначальном вопросе.

Потратив пару часов на работу над альтернативными решениями, которые не работали, для того же требования, что и ОП, это именно то, что мне было нужно.

Мне нужно использовать для отображения нескольких изображений, которые читаются над корнем и поэтому обычно недоступны через тег IMG, поэтому решение, опубликованное Эриком, прекрасно и элегантно выполняет свою работу.

<img src="my_img.php" />

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

В целом, отличный ответ и спасибо.

0 голосов
/ 11 марта 2010

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

В отношении использования обоих типов контента на одной странице - например, на обычной HTML-странице с элементами <img> это отдельные HTTP-запросы, поэтому они имеют свой собственный заголовок Content-Type.

Не совсем уверен, чего вы здесь добиваетесь ...

...