麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
一段验证码的探索,最后遇到困难。。。是关于进制转化
悬赏分:20 - 2007年08月17日

[PHP]
<?php
session_start();
$authnum=rand(1000,9999);//生成四位随机整型验证码
setcookie('auth',$authnum);
$_SESSION['auth']=$authnum;

//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreate($wid=11*strlen($authnum),20);
imagefill($im,68,30,ImageColor($im,'#FFFFFF'));

//将四位整数验证码绘入图片
//位置交错
for ($i = 0; $i < strlen($authnum); ++$i)
{
$i%2 == 0?$top = 1top = 5;
imagestring($im, 5, 10*$i+6, $top, substr($authnum,$i,1),ImageColor($im,'#FF0000'));
}

for($i=0;$i<150;$i++) //加入干扰象素
{
imagesetpixel($im, rand()%90 , rand()%30 , ImageColor($im,'#FF9900'));
}

ImagePNG($im);
ImageDestroy($im);
function ImageColor($im,$color)
{
preg_match_all("/([0-f]){2,2}/i",$color,$out);
if(count($out[0])!=3)$out[0]=array_pad ($out[0],3,0);
return ImageColorAllocate($im, hexdec($out[0][0]),hexdec($out[0][1]),hexdec($out[0][2]));
}
?>[/PHP]

function ImageColor($im,$color)
{
preg_match_all("/([0-f]){2,2}/i",$color,$out);
if(count($out[0])!=3)$out[0]=array_pad ($out[0],3,0);
return ImageColorAllocate($im, hexdec($out[0][0]),hexdec($out[0][1]),hexdec($out[0][2]));
}

ImageColor($im,'#FF9900');

函数中最后一句
$out[0][0]=F $out[0][1]=F $out[0][3]=0
对吧?

最后在ImageColorAllocate中,将他们转为十进制,对吧?为何要这样做?这样颜色是无法随机变化的,不是多此一举吗?


PS:代码是由纯粹误会提供,谢谢他了!

提问者:知川内酷   08-17 16:04
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
30 + 2 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM