php jpgraph的安装和使用,以及中文乱码的解决

一、安装前说明。

我的安装环境是,windows +phpstudy

首先我们要理解GD库和Jpgraph库之间的关系。

GD是默认安装在php下的图形库。(phpstudy默认是开启的)

而Jpgraph库是基于GD库的,它需要在Jpgraph官网上自行下载(这个很快)。

所以我们首先需要在php中开启 GD库的使用,然后安装并配置Jpgraph(我的jpgraphj是4.2.2版本,php是5.6.27-nts+apache)。
二,开启GD库。

首先,打开php.ini(windows下应该在你的安装目录根目录下)。

找到 entension_dir, 注释掉前面的 ; , 将你的 ext (扩展文件夹目录) 路径写在后面。(在你的phpstudy的php 5.6.27-nts下面找到ext文件目录 D:\phpStudy\php\php-5.6.27-nts\ext)
在这里插入图片描述
重启一行,写上extension_dir=“D:\phpStudy\php\php-5.6.27-nts\ext”

这样做的目的: 让php知道去哪里找那些扩展文件(windows下是一堆.dll)

然后, 还要开启 gd库, 同样, 在php.ini. 中,找到 php_gd2.dll, 将前面的注释; 去掉, 也就是开启了gd2的使用。

这样在刚刚那个ext文件下的 一个 php_gd2.dll 文件就能够被使用了。

(同理, 开启其他功能的使用也是这样操作的)
这里,为什么是gd2呢, 因为在php5 之后,就把gd给删掉了,也就是说 gd2 包含了 原本的gd, 所以不要有怀疑。

这时候你测试一下:

<?php var_dump(gd_info()); ?>

如果出现,gd的信息,说明,gd启动成功。

但是很有可能你在画很多网上的例子的时候还是显示不出来,

这是因为缓存问题,你需要在输出图形之前加上

ob_clean();清除缓存。

三,jpgraph库

至于jpgraph的配置其实很简单,把jpgraph的src里面的所有文件放在php里面(或者其他位置也行),

然后在php.ini 中找到 include_path, 写上你的文件目录。

这里要注意一个问题,

如果你的include_path 如图:在这里插入图片描述
重启一行,写上include_path=".;D:\phpStudy\WWW\xuexiphp;"
那么你在引用的时候,必须是从includes下一级开始写文件路径,知道需要的php文件。

如,

在这里插入图片描述
那么说明, xuexiphp下面就是 jpgraph, 然后jpgraph中有那两个php。

为什么我要特意说一下这个呢,因为一开始我的include_path 写的是 D:\phpStudy\WWW\xuexiphp\jpgraph;. 然后就会引用出错。

这是个细节。

还有一小点: 要让php.ini 生效,服务器必须要重启的。

四,最后, 解决中文乱码的问题

第一种方法:将SetFont函数第一个参数设置为FF_SIMSUN,将jpgraph_ttf.inc.php中修改为

elseif( $aFF === FF_SIMSUN ) {
            // Do Chinese conversion  注释掉
           // if( $this->g2312 == null ) {  注释掉
             //   include_once 'jpgraph_gb2312.php' ;  注释掉
              //  $this->g2312 = new GB2312toUTF8();  注释掉
           // }  注释掉
            //return $this->g2312->gb2utf8($aTxt);  注释掉,下面重写个返回
			return $aTxt;
        }

我用的是第一种方法

第二种方法:将SetFont函数第一个参数设置为FF_SIMSUN;不修改jpgraph_ttf.inc.php中的内容,则使用函数将utf8转换为gb2312

$bt="这是统计表";
	$b=iconv("UTF-8","gb2312",$bt);
	$graph->title->Set("$b");
	$xz="x轴";
	$x=iconv("UTF-8","gb2312",$xz);
	$graph->xaxis->title->Set("$x");
	$graph->yaxis->title->Set("Y-title");
	
	$graph->title->SetFont(FF_SIMSUN,FS_BOLD);
	$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);
	$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

五,实例验收

<?php
header("content-type:image/jpeg");       //定义输出图像的类型
$im=imagecreatefromjpeg("./image/1265521666.jpg");//重点这里面的照片文件一定要是image文件夹,不然要出错,或是不要文件夹直接图片
$textcolor=imagecolorallocate($im,56,73,136);  //设置字体颜色
$fnt="c:/windows/fonts/simhei.ttf"; 
$motto="长白山";   //定义输出字符串 UTF-8编码字体
imageTTFText($im,50,50,150,150,$textcolor,$fnt,$motto);   //写入到图片中
imagegif($im);        //建立gif图形
imageDestroy($im);   //结束图形,释放内存空间
?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值