通過google,看本站問答,代碼檢索,一遍一遍debug代碼就是出不來,現請老師幫忙解決這個問題。
LAMP環境:Ubuntu?14.04,Apache?2.4.7?,?MySQL?5.5.4,?PHP?5.5.9
錯誤提示:the?image?"http://phpstorm.com/shopImooc/lib/image.func.php"?cannot?be?displayed?because?it?contains?errors.
檢查過GD庫,順利加載
string.func.php已驗證可以生成4位驗證碼
image.func.php代碼:
require_once?'string.func.php';
//通過GD庫做驗證碼
session_start();
//創建畫布
$width?=?80;
$height?=?28;
$image?=?imagecreatetruecolor($width,?$height);
$white?=?imagecolorallocate($image,?255,?255,?255);
$black?=?imagecolorallocate($image,?0,?0,?0);
//用填充矩形填充畫布
imagefilledrectangle($image,?1,?1,?$width?-?2,?$height?-?2,?$white);
$type?=?1;
$length?=?4;
$chars?=?buildRandomString($type,?$length);
$sess_name?=?"verify";
$_SESSION[$sess_name]?=?$chars;
//$fontfiles?=?array("DejaVuSansMono.ttf");
for?($i?=?0;?$i?<?$length;?$i++)?{
????$size?=?mt_rand(14,?18);
????$angle?=?mt_rand(-15,?15);
????$x?=?5?+?$i?*?$size;
????$y?=?mt_rand(20,?26);
????$fontfile?=?"../fonts"?.?"/DejaVuSansMono.ttf";
????$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);
}
header("content-type:image/png");
imagepng($image);
imagedestroy($image);
2015-12-14
你的代碼沒有問題!!!你的計算機上存在DejaVuSansMono.ttf這種字體嗎?如果存在,該字體有放在fonts目錄下嗎?