以图形的形式输出数据库中的记录数

index.php代码段 

<?php session_start();  
if(!isset($_SESSION['temp'])){ //判断$_SESSION['temp']==""的值是否为空,其中的temp为自定义的变量
	if(($fp=fopen("counter.txt","r"))==false){ 
		echo "打开文件失败!";
	}else{ 
		$counter=fgets($fp,1024);		//读取文件中数据
		fclose($fp);                    //关闭文本文件
		$counter++;                     //计数器增加1
		$fp=fopen("counter.txt","w");   //以写的方式打开文本文件<!---->
		fputs($fp,$counter);            //将新的统计数据增加1
		fclose($fp);    
	}                   				//关闭文件
 	$_SESSION['temp']=1; 					//登录以后,$_SESSION['temp']的值不为空,给$_SESSION['temp']赋一个值1
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>通过文本文件统计页面访问量</title>
</head>
<body>
<img src="gd1.php" />
</BODY>
</HTML>

 

gd1.php代码段

<?php 
//以图形的形式输出数据库中的记录数

if(($fp=fopen("counter.txt","r"))==false){
	echo "打开文件失败!";
}else{
	$counter=fgets($fp,1024);
	fclose($fp);
    //通过GD2函数创建画布
	$im=imagecreate(240,24);
	$gray=imagecolorallocate($im,255,255,255);
	$color =imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));    //定义字体颜色
	//输出中文字符
	$text=iconv("gb2312","utf-8","网站的访问量:");       					//对指定的中文字符串进行转换
	$font = "Fonts/FZHCJW.TTF";  
	imagettftext($im,14,0,20,18,$color,$font,$text);       					//输出中文
	//输出网站的访问次数
	imagestring($im,5,160,5,$counter,$color);
	imagepng($im);
	imagedestroy($im);
}  	

?>

 

结果显示为:

 

有报错信息吗?检查一下$font = "Fonts/FZHCJW.TTF";地址是否正确?

可以试试直接把ttf文件放在跟gd1.php一个目录下面,改成$font = "FZHCJW.TTF"试试

https://www.php.net/manual/en/function.imagettftext.php

先把文件存入本地,用一个链接现实

首先,查看错误图片的地址和报错信息,若是地址错误直接改为正确的就行,若不是,则检查文件操作函数是否有对应的权限,有个笨办法,一步一打印

 

 

亲测可用
$counter = "12";
$im      = imagecreate(240, 24);
$gray    = imagecolorallocate($im, 255, 255, 255);
//输出中文字符
$text  = "网站的访问量:";//$text=iconv("gb2312","utf-8","网站的访问量:");                      //对指定的中文字符串进行转换
$font  = 'C:\Windows\Fonts\msyh.ttc';
$color = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255));    //定义字体颜色
imagettftext($im, 20, 0, 10, 21, $color, $font, $text);                        //输出中文
//输出网站的访问次数
imagestring($im,5,190,5,$counter,$color);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);