изменить тип содержимого заголовка в php - PullRequest
0 голосов
/ 30 сентября 2011

Я использую этот код

$query = mysql_query("SELECT Image, Col2, Col3 FROM table ");
$row = mysql_fetch_array($query);
$content = $row['Image'];
header('Content-type: image/jpg');
echo $content;  
echo $row['Col2'];
echo $row['Col3'];

Проблема в том, что как только я делаю 'Content-type: image/jpg', другие Col2 и Col3 не появляются. Это не изображения, а просто текстовые строки. Как я могу отображать изображение и текст одновременно?

Ответы [ 2 ]

5 голосов
/ 30 сентября 2011

Браузер ожидает только двоичные данные изображения при установке типа содержимого заголовка на image / jpg. Вывод текста с этим типом содержимого приведет к разрыву двоичного изображения и не отобразит текст.

Без изменения заголовка вы можете закодировать изображение в тег изображения:

echo '<img src="data:image/jpg;base64,' . base64_encode($content) . '" />';
echo $row['Col2'];
echo $row['Col3'];
2 голосов
/ 30 сентября 2011

Сам по себе вы не можете ...

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

Единственный способ увидеть ваши данные - использовать функцию header () для отправки дополнительных данных, которые не нужны браузеру.Затем, используя используемую вами консоль Firebug или Wathever, найдите вкладку NETWORK, откройте запрос на изображение и откройте вкладку headers, вы увидите там свои данные, но не сможете показать эти данные пользователю.1006 *

Другим странным способом было бы напечатать ваш текст на изображении, используя GD, но это, вероятно, не то, что вы хотите.

...