注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天上人间*bobo之家

有阳光的时段,就有他(她)的博客文章。也许天气并非晴空万里,博主的“博物钟”却是

 
 
 

日志

 
 

php汉字验证码-中文验证码-支持uft8和gbk  

2010-03-23 22:00:53|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

php汉字验证码-中文验证码-支持uft8和gbk

 

uft8 案例

  1. <?php  
  2. define('WWW.PHPZY.COM', 'WWW.PHPZY.COM');  
  3. function verify($user_str){//从cookie中对比用户的输入  
  4.         if(md5($cookie_str.WWW.PHPZY.COM)==$_COOKIE['vrify'])  
  5.                 return 1;  
  6.         else 
  7.                 return 0;  
  8. }  
  9. function c2ch($num){  
  10.   $ch_h = chr(substr($num,0,2)+160);  
  11.   $ch_l = chr(substr($num,2,2)+160);  
  12.   return $ch_h.$ch_l;  
  13. }  
  14. function num_rand(){  
  15.         mt_srand((double)microtime() * 1000000);  
  16.         $d= mt_rand(16,36);  
  17.         $n= mt_rand(1,19);  
  18.         return c2ch($d*100+$n);  
  19. }  
  20.  
  21. $k[0]=num_rand();  
  22. $k[1]=num_rand();  
  23. $k[2]=num_rand();  
  24. $k[3]=num_rand();  
  25. //print_r($k);  
  26. $cookie_str=implode('', $k);  
  27. setcookie('vrify',md5($cookie_str.WWW.PHPZY.COM),time()+600);  
  28. $str[0]=iconv('gb2312','UTF-8',$k[0]);  
  29. $str[1]=iconv('gb2312','UTF-8',$k[1]);  
  30. $str[2]=iconv('gb2312','UTF-8',$k[2]);  
  31. $str[3]=iconv('gb2312','UTF-8',$k[3]);  
  32. //构造图像  
  33. $x_size=80;  
  34. $y_size=25;  
  35.  
  36. $font='heiti.ttf';  
  37. $pic=imagecreate($x_size,$y_size);  
  38. $background_color = imagecolorallocate ($pic, 255, 255, 255);  
  39. $black=imagecolorallocate($pic,0,0,0);  
  40. $red=imagecolorallocate($pic,255,0,0);  
  41. $ddd=imagecolorallocate($pic,255,0,255);  
  42. imagettftext($pic,15,mt_rand(-8,8),6,mt_rand(19,22),$black,$font,$str[0]);  
  43. imagettftext($pic,15,mt_rand(-8,8),37,20,$black,$font,$str[2]);  
  44. imagettftext($pic,mt_rand(15,17),mt_rand(-8,8),22,20,$ddd,$font,$str[1]);  
  45. imagettftext($pic,mt_rand(15,17),mt_rand(-8,8),54,mt_rand(19,22),$red,$font,$str[3]);  
  46. imagerectangle($pic, 0, 0, $x_size - 1, $y_size - 1,$black);  
  47. Imagepng($pic);  
  48. ImageDestroy($pic);  
  49. ?>  
  50.  

 

gbk案例

 

  1. <?php  
  2. error_reporting(0);  
  3. session_start();  
  4.  
  5. Header("Content-type: image/PNG");  
  6. $str = "的一是在了不和有大这主中人上为们地个用工时要动国产以我到他会作来分生对于学下级就年";  
  7. $imgWidth = 130;  
  8. $imgHeight = 40;  
  9. $authimg = imagecreate($imgWidth,$imgHeight);  
  10. $bgColor = ImageColorAllocate($authimg,255,255,255);  
  11. $fontfile = "simhei.ttf";  
  12. $white=imagecolorallocate($authimg,234,185,95);  
  13. imagearc($authimg, 150, 8, 20, 20, 75, 170, $white);  
  14. imagearc($authimg, 180, 7,50, 30, 75, 175, $white);  
  15. imageline($authimg,20,20,180,30,$white);  
  16. imageline($authimg,20,18,170,50,$white);  
  17. imageline($authimg,25,50,80,50,$white);  
  18. $noise_num = 800;  
  19. $line_num = 20;  
  20. imagecolorallocate($authimg,0xff,0xff,0xff);  
  21. $rectangle_color=imagecolorallocate($authimg,0xAA,0xAA,0xAA);  
  22. $noise_color=imagecolorallocate($authimg,0x00,0x00,0x00);  
  23. $font_color=imagecolorallocate($authimg,0x00,0x00,0x00);  
  24. $line_color=imagecolorallocate($authimg,0x00,0x00,0x00);  
  25. for($i=0;$i<$noise_num;$i++){  
  26.     imagesetpixel($authimg,mt_rand(0,$imgWidth),mt_rand(0,$imgHeight),$noise_color);  
  27. }  
  28. for($i=0;$i<$line_num;$i++){  
  29.     imageline($authimg,mt_rand(0,$imgWidth),mt_rand(0,$imgHeight),mt_rand(0,$imgWidth),mt_rand(0,$imgHeight),$line_color);  
  30. }  
  31. $randnum=rand(0,strlen($str)-4);  
  32. if($randnum%2)$randnum+=1;  
  33. $str = substr($str,$randnum,8);  
  34.  
  35. $_SESSION[chart]=$str;  
  36.  
  37. //$str = iconv("GB2312","UTF-8",$str);  
  38.  
  39. ImageTTFText($authimg, 20, 0, 16, 30, $font_color, $fontfile, $str);  
  40. //ImagePNG($authimg);  
  41. //ImageDestroy($authimg);  
  42.  
  43. @header("Expires: -1");  
  44. @header("Cache-Control: no-store, private, post-check=0, pre-check=0, max-age=0", FALSE);  
  45. @header("Pragma: no-cache");  
  46. header('Content-Type: image/jpeg');  
  47. imagepng($authimg);  
  48. ?>  
  49.  

记得放字体!没有字体随便去控制面板-字体-复制一个过来就可以使用了

 

http://www.phpzy.com/phpjichuwenda/336.html

  评论这张
 
阅读(498)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018