//image.func.php
<?php?
require_once?'string.func.php';
//通過GD庫做驗證碼
//創建畫布
$width?=?80;
$height?=20;
$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("MSYH.TTF","MSYHBD.TTF","SIMSUN.TTC","SIMYOU.TTF","STXINWEI.TTF");
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);
}
header("content-type:image/gif");
imagegif($image);
imagedashedline($image);
//string.func.php
<?php
function?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?(?"字符串長度不夠"?);
}
$chars?=?str_shuffle?(?$chars?);
return?substr?(?$chars,?0,?$length?);
}
2014-12-06
不會啊,你可以先調試輸出下$text看看是否截取的到,出問題嘗試調試,解決問題也是進步的過程
^-^...