这是我的代码。我试图通过调整大小来将图像放入div中。但是它显示了这个错误:“无法修改标题信息,已经发送的标题(输出从F:\ xampp \ htdocs ............开始”
<div class="image" >
<?php header('Content-Type: image/jpeg');
$image=$link;
echo $link;
$image_size=getimagesize($image);
$image_width=$image_size[0];
$image_height=$image_size[1];
$new_width=200;
$new_height=200;
$new_image = imagecreatetruecolor($new_width,$new_height);
$old_image = imagecreatefromjpeg($image);
imagecopyresized($new_image,$old_image,0,0,0,0,$new_width,$new_height,$image_width,$image_height);
imagejpeg($new_image);
?>
</div>
答案 0 :(得分:2)
您可以使用php标头,只有在之前没有输出任何内容时...在这种情况下,您输入了<div class="image" >
,标准文本标题已发送。在这种情况下,发送另一个标题是错误的。
正如评论中所述,<?php
- 需要空间。
解决方案很简单。创建另一个php文件,并将其命名为image.php。在该文件中,输入此代码(在<?php
?>
标记内):
header('Content-Type: image/jpeg');
$image=$link;
$image_size=getimagesize($image);
$image_width=$image_size[0];
$image_height=$image_size[1];
$new_width=200;
$new_height=200;
$new_image = imagecreatetruecolor($new_width,$new_height);
$old_image = imagecreatefromjpeg($image);
imagecopyresized($new_image,$old_image,0,0,0,0,$new_width,$new_height,$image_width,$image_height);
imagejpeg($new_image);
在原始代码中,您可以使用:
<div class="image" >
<img src="image.php">
</div>
在这种情况下,php脚本作为图像可见。标题表明它是一个图像。在实际代码中,您只提供此图像的来源,即image.php。扩展名并不重要(例如,我们通常会编写image.jpg),但该文件的标题(header('Content-Type: image/jpeg');
)会告诉浏览器这是一个真正的图像。
附加说明:
如果在你的主脚本中你有一些逻辑,你用来创建那个图像,你必须使用GET方法将所有这些逻辑传递给该图像,或者在image.php中重写它...
例如,如果大小是一个变量(在这种情况下它不是,但我正在使用一个例子),你可以这样做:
<img src="image.php?width=<?php echo $width; ?>">
在image.php中
$width = isset($_GET['width']) ? $_GET['width'] : 100; // 100 = default
请记住,不要使用该方法传递任何重要信息。例如,如果您正在生成验证码图像,则不应在get;)中传递验证码。
我希望您的图像生成代码是好的。如果没有,您可以删除第一行,并在浏览器中访问image.php。没有任何标题,它会将其视为普通文本页面,并将显示php错误。如果没有错误,只需要进行位编码,然后添加标题,它应该可以正常工作。
希望它有所帮助,并且给你一些关于标题如何在php中工作的线索。没有“动态”标题,每个文件都存在于自己的标题世界中。