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);