Php 生成图像后回波丢失 $data='ivborw0kggoaaansuheugaaabwaaaascamaaab/2U7WAAAABl' . 'BMVEUAAAD///+l2Z/daaaasureqvr4xqwquqoaaixc2/0vXZDr' . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r' . '8a5hse35q3eo2xp1a1wqkzsgetvdtkdqaaabjru5erkjggg=='; $data=base64_解码($data); $im=imagecreatefromstring($data); 如果($im!==false){ 标头(“缓存控制:无缓存,必须重新验证”); 标题(“到期日期:1997年7月26日星期一05:00:00 GMT”); 标题('Content-Type:image/png'); 图像PNG($im); //回声'; 回声“----------------”; }否则{ 回显“发生错误”; }
它显示图像,但不回显“================”您告诉浏览器需要图像,因此它只需要图像。发送的所有内容都将被视为该图像数据的一部分。不,它不会将您发送的文本转换为图像的一部分。您正在生成一个图像(因此是标题),因此,如果您在此之后回显某个内容,则基本上是在图像的字节后回显“--”。Php 生成图像后回波丢失 $data='ivborw0kggoaaansuheugaaabwaaaascamaaab/2U7WAAAABl' . 'BMVEUAAAD///+l2Z/daaaasureqvr4xqwquqoaaixc2/0vXZDr' . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r' . '8a5hse35q3eo2xp1a1wqkzsgetvdtkdqaaabjru5erkjggg=='; $data=base64_解码($data); $im=imagecreatefromstring($data); 如果($im!==false){ 标头(“缓存控制:无缓存,必须重新验证”); 标题(“到期日期:1997年7月26日星期一05:00:00 GMT”); 标题('Content-Type:image/png'); 图像PNG($im); //回声'; 回声“----------------”; }否则{ 回显“发生错误”; },php,Php,它显示图像,但不回显“================”您告诉浏览器需要图像,因此它只需要图像。发送的所有内容都将被视为该图像数据的一部分。不,它不会将您发送的文本转换为图像的一部分。您正在生成一个图像(因此是标题),因此,如果您在此之后回显某个内容,则基本上是在图像的字节后回显“--”。 您的浏览器认为您的.php脚本现在是一个图像,并且不会将“---”显示为纯文本,并尝试将其添加到图像中。这是因为您的 $data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMA
您的浏览器认为您的.php脚本现在是一个图像,并且不会将“---”显示为纯文本,并尝试将其添加到图像中。这是因为您的
$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.';
}
它可以防止您重复此页面上图片以外的内容。
(当然不是,但是你的浏览器认为这仍然是图片的一部分)
如果要回显图片和文本,需要一个单独的文件,例如
header('Content-Type: image/png');
echo';
回声'';
wehere pic.php是返回图片的文件的路径。有一种方法可以同时显示这两个文件。作为免责声明,我将补充说,在生产中不使用此功能。并非所有浏览器都支持此功能,而且它不是purty:
echo '<img source="./pic.php" alt="pic" height="20" width="20" />';
echo '______________';
标题('Content-Type:text/html');
ob_start();
图像PNG($im);
$data=base64_编码(ob_get_clean());
printf(“”,$data);
印刷品('-----------');
请添加一个有意义的问题。发生了什么或没有发生什么?代码基本上用于从流生成图像。它生成图像,但当我尝试打印之后,它不会在浏览器上显示任何内容…您的内容类型是image/png
。您正在输出一个图像。破折号的文本输出空间在哪里?@user这是设计的。您需要将文本内容添加到周围的HTML文档中。我们通常使用一种叫做“HTML”的东西。
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('---------');