• 技术文章 >后端开发 >php教程

    php自定义大小验证码的实例代码

    2016-07-25 08:59:04原创310
    1. /**

    2. * php 验证码 可自定义大小
    3. * edit bbs.it-home.org
    4. */
    5. function vCode($num=4,$size=20, $width=0,$height=0){
    6. !$width && $width = $num*$size*4/5+5;
    7. !$height && $height = $size + 10;
    8. // 去掉了 0 1 O l 等
    9. $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";
    10. $code = '';
    11. for ($i=0; $i<$num; $i++){
    12. $code.= $str[mt_rand(0, strlen($str)-1)];
    13. }
    14. // 画图像
    15. $im = imagecreatetruecolor($width,$height);
    16. // 定义要用到的颜色
    17. $back_color = imagecolorallocate($im, 235, 236, 237);
    18. $boer_color = imagecolorallocate($im, 118, 151, 199);
    19. $text_color = imagecolorallocate($im, mt_rand(0,200), mt_rand(0,120), mt_rand(0,120));

    20. // 画背景

    21. imagefilledrectangle($im,0,0,$width,$height,$back_color);
    22. // 画边框
    23. imagerectangle($im,0,0,$width-1,$height-1,$boer_color);
    24. // 画干扰线
    25. for($i=0;$i<5;$i++){
    26. $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
    27. imagearc($im,mt_rand(-$width,$width),mt_rand(-$height,$height),mt_rand(30,$width*2),mt_rand(20,$height*2),mt_rand(0,360),mt_rand(0,360),$font_color);
    28. }
    29. // 画干扰点
    30. for($i=0;$i<50;$i++){
    31. $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
    32. imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$font_color);
    33. }
    34. // 画验证码
    35. @imagefttext($im, $size , 0, 5, $size+3, $text_color, 'c://WINDOWS//Fonts//simsun.ttc',$code);
    36. header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
    37. header("Content-type: image/png");
    38. imagepng($im);
    39. imagedestroy($im);
    40. }
    41. ?>

    复制代码

    调用示例:

    1. // 验证码示例
    2. //4个字符,大小为20
    3. vCode(4,20);
    4. ?>
    复制代码
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php自定义大小验证码的实例代码
    上一篇:php中header函数的用法举例详解 下一篇:UCenter的可逆加密函数authcode
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 细思极恐?关于in_array的第3个参数• 关于HTML登陆界面的有关问题。• 今天又犯2了-小弟我不是在犯2,就是在犯2的路下• mysql导出文件有关问题?请!• 关于PHP传值与传引用的奇怪有关问题
    1/1

    PHP中文网