读书人

汉语言验证码

发布时间: 2012-12-24 10:43:14 作者: rapoo

中文验证码

function create_visivvle_code($length){ $rand_code=array('说','特','也','名','豪','你','要','前','女','虫','仙','乱','得','糗','念','练','年','日','天','古','月','的','云','想','一','发','意','孤','行','相','的','时','厚'); header("content-type: image/png"); $image_x=$length*30;    //图片宽度 $image_y=40;            //图片高度     $noise_num=80*$length;  //杂点数量     $line_num=$length-2;    //干扰线数量 $image=imagecreate($image_x,$image_y); imagecolorallocate($image,0xff,0xff,0xff);                       //设定背景颜色 $rectangle_color=imagecolorallocate($image,0xAA,0xAA,0xAA);      //边框颜色 $noise_color=imagecolorallocate($image,0x00,0x00,0x00);            //杂点颜色 $font_color=imagecolorallocate($image,0xAA,0x00,0x00);               //字体颜色 $line_color=imagecolorallocate($image,0x33,0x33,0x33);               //干扰线颜色  //加入杂点     for($i=0;$i<$noise_num;$i++)     {          imagesetpixel($image,mt_rand(0,$image_x),mt_rand(0,$image_y),$noise_color);     }      $font_face="simfang.ttf";     //字体       $x=2;     $session_code='';     for($i=0;$i<$length;$i++)     {            $code=$rand_code[mt_rand(0,count($rand_code)-1)];         imagettftext($image,18,mt_rand(-6,6),$x,29,$font_color,$font_face,$code);            $x+=30;            $session_code.=$code;     }      @session_start();      $_SESSION['excode']=$session_code;  //把附加码的值放在session中      //加入干扰线      for($i=0;$i<$line_num;$i++)      {     imageline($image,mt_rand(0,$image_x),mt_rand(0,$image_y),mt_rand(0,$image_x),mt_rand(0,$image_y),$line_color);     imagerectangle($image,0,0,$image_x-1,$image_y-1,$rectangle_color);  //加个边框     imagepng($image);     imagedestroy($image);       }}

?

?? 直接调用方法 create_visible_code();

?

create_visivvle_code(4);     //--> 4 : 为需要显示的验证码长度

?

??? 注意:① 方法中? simfang.ttf文件? 为字体文件(必须要支持中文),可以根据自己需要改变。存在 安装系统的盘下:

?

????????????? 以我的为例 C:/WINDOWS/Fonts

?

????????? ?? ?? ②? 该方法目前只测试过UTF-8格式的字符。

?

?

?

读书人网 >编程

热点推荐