将PHP显示为图像

时间:2018-02-08 22:27:34

标签: php apache ubuntu

基本上这样做是为我墙上的固定柱子制作一张图像,上面写着“这面墙已经被观看过了多少次。”。这曾经在我的freewha.com免费网站上为我工作,但现在我已经切换到运行apache(ubuntu)的DigitalOcean的VPS,它不起作用。它说页面无法处理请求。我能够发现$ text之后底部的错误,但我找不到为什么会这样。

<?php

if(!defined('MyConst')) {
   die('Direct access not permitted');
}

$viewsOld = file_get_contents("path/views.conf");

$views = $viewsOld + 1;

file_put_contents("path/views.conf", $views);

if ($views < 10) {
$width = 305;
}
elseif ($views < 100) {
$width = 314;
}
elseif ($views < 1000) {
$width = 323;
}
elseif ($views < 10000) {
$width = 332;
}
elseif ($views < 100000) {
$width = 341;
}
elseif ($views < 1000000) {
$width = 350;
}
elseif ($views < 10000000) {
$width = 359;
}
elseif ($views < 100000000) {
$width = 368;
}
elseif ($views < 1000000000) {
$width = 377;
}
else {
}

$text = "This wall has been viewed $views times.";

$my_img = imagecreate( $width, 18 ); //width & height
$background  = imagecolorallocate( $my_img, 20,   20,   20 );
$text_colour = imagecolorallocate( $my_img, 0, 255, 0 );
imagestring( $my_img, 10, 0, 0, $text, $text_colour );
imagesetthickness ( $my_img, 5 );

header( "Content-type: image/png" );
imagepng( $my_img );
imagecolordeallocate( $text_color );
imagecolordeallocate( $background );
imagedestroy( $my_img );
?>

我已经安装了php和php-common,但它仍然会这样做。有关为何发生这种情况的任何解释?

1 个答案:

答案 0 :(得分:0)

此脚本取决于GD PHP扩展。如果它不起作用,您可能需要安装扩展程序 - 在Ubuntu上,这将是php-gd(如果您运行的是旧版本,则可能是php5-gd