$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
. 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
. 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
. '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);
$im = imagecreatefromstring($data);
if ($im !== false) {
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header('Content-Type: image/png');
imagepng($im);
//echo '<a href=\'imagepng('.$im.')\'> Download </a>';
echo "-----------------";
} else {
echo 'An error occurred.';
}
它显示图像但不回显“==============”。
答案 0 :(得分:5)
你告诉浏览器期待一个图像,因此它只是期待一个图像。发送的 Everything 将被视为该图片数据的一部分。不,它不会将您发送的文本转换为图像的一部分。
答案 1 :(得分:2)
这是因为你的
header('Content-Type: image/png');
它可以防止您回显本页面上的图片以外的其他内容。 (好吧,它确实没有,但你的浏览器认为这仍然是图片的一部分)
如果你想回显图片和文字,你需要一个单独的文件,例如:像这样
echo '<img source="./pic.php" alt="pic" height="20" width="20" />';
echo '______________';
wehere pic.php是文件的路径,它回显了图片。
答案 2 :(得分:2)
有两种显示方式。作为免责声明,我将在生产中添加不使用它。并非所有浏览器都支持此功能,并且它不是真的:
header('Content-Type: text/html');
ob_start();
imagepng($im);
$data = base64_encode(ob_get_clean());
printf('<img src="data:image/png;base64,%s" />', $data);
print('---------');
答案 3 :(得分:1)
你正在生成一个图像(因此标题),所以如果你之后回显一些东西,你基本上是在图像的字节之后回显“---”。 您的浏览器认为您的.php脚本现在是一个图像,并且不会将“---”显示为纯文本并尝试将其添加到图像中。