php生成验证码
2015-12-28 16:35
597 查看
//生成验证码 public function checkCode() { $width = 100; $height= 30 ; //创建画布,默认背景颜色为黑色 $img = imagecreatetruecolor($width, $height); //指定字符串 $str = $this->randomString(4); //将字符串放入session $_SESSION["checkcode"] = implode("", $str) ; //修改$str为字符串 $str = implode(" ", $str); //设置干扰像素点 $pixelnum = 100; for ($i=0; $i <$pixelnum ; $i++) { $color = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); imagesetpixel($img, mt_rand(0,$width), mt_rand(0,$height), $color); } //设置干扰线 $linenum = 5 ; for ($i=0; $i <$linenum ; $i++) { $color = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); imageline($img, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $color); } //设置字符串颜色 $color = imagecolorallocate($img, mt_rand(150,255), mt_rand(150,255), mt_rand(150,255)); //将字符串写到画布 imagestring($img, 5, $width/5, $height/3, $str, $color); //设置输出类型 header("Content-Type:image/png"); //输出到浏览器 imagepng($img); } //根据指定长度返回字符串数组 public function randomString($length) { $lower = range('a', 'z'); $upper = range('A', 'Z'); $num = range('0', '9'); $all = array_merge($lower,$upper,$num); shuffle($all); for ($i=0; $i <$length ; $i++) { $str[]= $all[array_rand($all)]; } return $str; }
相关文章推荐
- 转换流的使用(InputStreamReader,OutputStreamWriter)
- Fresco通过后处理器(Postprocessor)生成仿skype字母和背景色的头像
- 基于ThinkPHP3.23的简单ajax登陆案例
- /etc/php-fpm.d/www.conf 配置注意
- php【基础学习十五】关键词
- PHP-解码unicode编码的中文字符
- php设置编码格式的方法
- PHP提示Notice: Undefined variable的解决办法
- php分享十五:php的数据库操作
- laravel系列1-- laravel安装
- PHP裁剪图片
- 音视频同步(播放)原理
- php【基础学习十四】面向对象
- laravel laravel-elixir not found
- php【基础学习十三】零散知识点
- Yii快速入门经典教程
- 4. Phpstorm svn
- Socket 深度探究 4 PHP (三)
- Socket 深度探究 4 PHP (二)
- Socket 深度探索 4 PHP (一)