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

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

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

возвращает всю страницу как текст / html … while

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

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

Вы не можете. Но вы можете сделать что-то подобное в своем HTML:

 <img src="my_img.php" /> 

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

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

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

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

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

Не совсем точно, что вы пытаетесь достичь здесь …

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

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

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

 <img src="my_img.php" /> 

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

В заключение, отличный ответ и спасибо.

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

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