• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

封装PHP验证码方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
/**
 * 生成验证码
 * @param  integer $width  图片宽度
 * @param  integer $height 图片高度
 * @param  string  $type   验证码类型
 * @param  integer $length 验证码长度
 * @return string  验证码字符串          
 */
function validateCode($width=100, $height=30, $type='mixed', $length=4) {
    $im = imagecreatetruecolor($width, $height); // 创建画布
    $white = imagecolorallocate($im, 255, 255, 255); // 分配颜色
    imagefilledrectangle($im, 0, 0, $width, $height, $white); // 矩形填充
    // 产生随机色
    function randColor($im) { 
        return imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
    }
    switch($type) { 
        case 'num': // 数字型
        $str = implode('', range(0, 9));
        break;
        case 'letter': // 字母型
        $str = implode('', array_merge(range('a', 'z'), range('A', 'Z')));
        break;
        case 'mixed': // 混合型
        $str = implode('', array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9)));
        break;
    }
    $str = substr(str_shuffle($str), 0, $length); // 截取
    for ($i = 0; $i < $length; $i++) { // 每次写入一个字符
        imagettftext($im, 18, mt_rand(-20, 20), $i*($width/$length), mt_rand($height-10, $height-5), randColor($im),'ariblk.ttf', $str[$i]); //ariblk.ttf字体文件可替换
    }
    for ($i = 0; $i < 100; $i++) { // 加入像素点
        imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), randColor($im));
    }
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
    return $str;
}

可生成指定位数的数字型、字母型、混合型验证码。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
在阿里云 centos 6.3上面安装php5.2(转)发布时间:2022-07-10
下一篇:
在linux系统将php添加到全局环境变量发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap