我是drupal和php的新手。现在我正在尝试通过在zen子主题中编辑page.tpl.php模板来自定义我自己的drupal页面,到目前为止,与数据和文本相关的所有php代码在页面上都正常工作。
然而,当我试图通过php添加动态图像来进一步自定义页面时,事情不起作用。该站点现在返回一个断开的链接图标,该图标阻止应该在页面上显示的所有其他内容。我已经测试了在单个php页面上生成动态图像的代码,它运行良好。我想知道如何解决这个问题并让动态图像在我的drupal网站上正确显示?非常感谢提前。
这是我的代码
<div id="projects">
<?php
global $node;
$projectname = db_query("SELECT title FROM {node}
where type='project' and uid= :uid", array(':uid' =>$user->uid))- >fetchAll();
if ($projectname){
foreach($projectname as $item) {
print $item->title ;
echo "<br>";
}
}
else{
print "no project";
}
?>
#this is the chunk of codes that generates the dynamic image
<?php
//$image = @imagecreate(200, 20)or die("Cannot Initialize new GD image stream");
$image = imagecreate(200, 20);
$background = imagecolorallocate($image,0,0,0);
$foreground = imagecolorallocate($image,255,255,255);
imagestring($image,5,5,1,"This is a Test",$foreground);
header("Content-type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
?>
</div>
答案 0 :(得分:1)
您生成的图片需要位于自己的页面中。 imagejpeg
将打印原始图像二进制输出。
要让您的网页html页面显示它,您可以使用基本<img src="">
导入它。
恢复:
image.php
=&gt;渲染完整的二进制图像page.php
=&gt;带有<img src="image.php">
的标准网页html页面,用于获取动态生成的图像编辑:我可能已经快速阅读了这个问题,但对我来说仍然不清楚......
最常见的问题是错误或文本输出已与图像一起发送并破坏原始输出。删除标题以临时显示输出将有助于显示已发送的内容。还要关注<?php
块,在PHP代码之前的一个空格会破坏图像
简而言之:image.php
必须只返回原始二进制图像数据。