在网上找了一个验证码类 ,把验证码类放在一个文件夹放好, 接着我把需要的字体放在该类的相同目录,
然后在验证码类里面指向字体的路径,在验证码类构造函数中我使用的 $this->font = " ./font.ttf "
然后我发现验证码打死都不出来 只有背景,没有验证码,
然后我就想到thinkphp的格言了 we can do it just think it ,,开个玩笑
我想了一下背景出来了 那么验证码类引入没问题 没有文字 那么多半就是字体路径错了
于是 我在验证码类的构造函数中输出 echo $this->font ................
我顿时惊讶了 这路径不是我心甘情愿的那样
例如 我的验证码类放在了/opt/lampp/htdocs/ThinkPHP/Extend/Library/ORG/Util/core下面,字体也在同级目录中
结果我输出字体的路径竟是:/opt/lampp/htdocs/App/Lib/Action/Index/elephant.ttf
然后我把字体拿出来放到这个目录下面 ok
这是我的验证码生成操作:
public function code()
{
define('ROOT_PATHR', dirname(__FILE__));
import('ORG.Util.core.ValidateCode');
$_vc = new ValidateCode(); //实例化一个对象
ob_end_clean();
$_vc->doimg();
$_SESSION['code'] = $_vc->getCode();//验证码保存到SESSION中
}
这里thinkphp找的相对路径不是以验证码类来找,此时验证码被导入到了code作为code的一部分代码,于是相对路径就变成了code操作,