最近新做一个项目要用到验证码,我就把原来项目里的验证码类拿过来直接用了.没想到竟然报错了,错误信息如下:
Warning: imagettftext(): Could not find/open font in
因为这个验证码类, 一直在之前项目里正常使用, 所以猜测应该是PHP7或者环境的问题.
上网找了一圈资料, 发现是GD库加载字体文件时,需求提供绝对路径,给font路径用realpath()将相对路径转成绝对路径即可。
$this->font = realpath(C("CODE_FONT"));
或者:
imagettftext ( $this->img, $this->fontsize, mt_rand ( - 15, 15 ), $_x * $i + mt_rand ( 2, 3 ), $this->height / 1.2, $this->fontcolor, realpath($this->font), $string->mbSub($this->code, 1, $i));