驗(yàn)證碼數(shù)字不顯示
<?phprequire_once?'string.func.php';header("content-type:image/gif");//通過(guò)GD庫(kù)做驗(yàn)證碼//創(chuàng)建畫(huà)布function?verifyImage($type=3,?$length=4,$sess_name?=?"verify"){????session_start();????$width?=?80;????$height?=?28;????$image?=?imagecreatetruecolor($width,?$height);????$white?=?imagecolorallocate($image,?255,?255,?255);????$black?=?imagecolorallocate($image,?0,?0,?0);????//用矩形填充畫(huà)布????imagefilledrectangle($image,?1,?1,?$width?-?2,?$height?-?2,?$white);????//?$type?=?1;????//$length?=?4;????$chars?=?buildRandomString($type,?$length);????$fontfiles?=?array("dutch.ttf",?"dutchb.ttf",?"dutchbi.ttf",?"dutcheb.ttf",?"dutchi.ttf",?"tt0524m_.ttf",?"tt0586m_.ttf",?"tt1018m_.ttf");????$_SESSION[$sess_name]?=?$chars;????for?($i?=?9;?$i?<?$length;?$i++)?{????????$size?=?mt_rand(14,?18);????????$angle?=?mt_rand(-15,?15);????????$x?=?5?+?$i?*?$size;????????$y?=?mt_rand(20,?26);????????$fontfile?=?"../fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];????????$color?=?imagecolorallocate($image,?mt_rand(50,?90),?mt_rand(80,?200),?mt_rand(90,?180));????????$text?=?substr($chars,?$i,?1);????????imagettftext($image,?$size,?$angle,?$x,?$y,?$color,?$fontfile,?$text);????}????$pixel?=?10;????if?($pixel)?{????????for?($i?=?0;?$i?<?50;?$i++)?{????????????imagesetpixel($image,?mt_rand(0,?$width?-?1),?mt_rand(0,?$height?-?1),?$black);????????}????}????$line?=?true;????if?($line)?{????????for?($i?=?1;?$i?<?$line;?$i++)?{????????????$color?=?imagecolorallocate($image,?mt_rand(50,?90),?mt_rand(80,?200),?mt_rand(90,?180));????????????imageline($image,?mt_rand(0,?$width?-?1),?mt_rand(0,?$height?-?1),?mt_rand(0,?$width?-?1),?mt_rand(0,?$height?-?1),?$color);????????}????}????imagegif($image);????imagedestroy($image);}
<?phpfunction?buildRandomString($type?=?1,?$length?=?4){????if?($type?==?1)?{????????$chars?=?join("",?range(0,?9));????}?elseif?($type?==?2)?{????????$chars?=?join("",?array_merge(range("a",?"z"),?range("A",?"Z")));????}?elseif?($type?==?3)?{????????$chars?=?join("",?array_merge(range("a",?"z"),?range("A",?"Z"),?range(0,?9)));????}????if?($length?>?strlen($chars))?{????????exit("字符串長(zhǎng)度不夠");????}????$chars?=?str_shuffle($chars);????return?substr($chars,?0,?$length);}
這是什么問(wèn)題,一模一樣的代碼,為什么不顯示數(shù)字呢?
2020-04-17
自己找到了問(wèn)題所在,
imagettftext()中的$fontfile必須要用絕對(duì)路徑,從盤(pán)符開(kāi)始全部補(bǔ)齊就可以了
$fontfile?=?"D:/phpstudy_pro/WWW/myphp/admin/fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];