PHP图像处理技术应用-验证码的使用

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、注册、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试

 封装验证码类
(1)封装一个验证码类,先实现能够随机生成不同颜色的背景
PHP图像处理技术应用-验证码的使用
PHP图像处理技术应用-验证码的使用
(2)在生成的图片上面随机的产生文字(字母、数字)
<由于随机生成字符的代码肯定会很多,所以我们将生成字符的代码封装到函数中 PHP图像处理技术应用-验证码的使用
(3)把随机生成的字符写入到画布中
使用imagettftext()写入,因为可以指定字体文件
<如何实现让每个字符所在的位置不一样,倾斜的角度也不一样? 思路:遍历这4个字符,指定每一个字符的位置、倾斜的角度

//开始绘制验证码
    public function makeImage()
    {
        //1. 创建画布,背景颜色应该是随机产生的,尽量背景颜色浅一点
        $image = imagecreatetruecolor($this->width, $this->height);
        //2. 分配颜色       
        $color = imagecolorallocate($image, mt_rand(100,255), 
mt_rand(100,255), mt_rand(100,255));
        imagefill($image, 0, 0, $color);
       
        //3. 开始绘制文字
        $code = $this->makeCode();
        for($i=0;$ifont_size, mt_rand(-30,30), 
($this->width/$this->number)*$i+5, 20, mt_rand(0,100), 
$this->font_file, $code[$i]); 
        }       
        //绘制100个干扰像素点
        for($i=0;$i<100;$i++){
            imagesetpixel($image, mt_rand(0,$this->width), 
mt_rand(0,$this->height), 
mt_rand(0,100));
        }
       
        //练习:绘制10条干扰线条
       
        //3. 输出到浏览器
        header("Content-Type:image/png");
        imagepng($image);
        //4. 销毁图像资源
        imagedestroy($image);
    }

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/9910.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2018年9月3日 10:00
下一篇 2018年9月7日 00:00

相关推荐

  • PHP产生不重复随机数的5个方法总结

    无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。PHP项目中,PHP程序员是需要经常的和随机数或者随机数组打交道,所以,本文就分享PHP如何产生不重复随机数常用的几种方法! 方法一: 方法二: 方法...

    2018年5月2日
    0281
  • PHP8中的数组函数:array_reduce()的多种应用示例。

    PHP8中的数组函数:array_reduce()的多种应用示例在PHP中,数组是一种非常重要的数据类型,它可以存储多个值,并且可以使用各种数组函数进行操作和处理。其中,array_reduce()函数是一种非常有用的函数,它可以将...

    2023年5月21日
    00
  • 关于php使用thrift做服务端开发的那些事

    php使用thrift做服务端开发thrift采用接口描述语言定义和创建服务,用二进制格式传输数据,体积更小、效率更高,对于高并发、数据量大和多语言的环境有更好的支持。Apache Thrift是啥?Apache Thrift是FaceBook开...

    2022年6月21日
    0113
  • PHP入门指南:持续集成。

    PHP是一种流行的开源编程语言,用于构建Web应用程序。在开发Web应用程序时,测试和持续集成非常重要。本文将介绍PHP持续集成的概念、优势和如何实施。什么是持续集成?持续集成是一种软件开发过程,通过频繁地集...

    2023年5月22日
    00
  • php如何使用Kohana框架。

    PHP如何使用Kohana框架?Kohana是一个基于MVC架构的PHP框架,由原始的CodeIgniter框架演变而来,其哲学是简单、灵活和优雅。Kohana框架提供了丰富的功能和良好的可重用性,使得它成为很多PHP开发者的首选。那么,...

    2023年6月3日
    00
  • PHP中如何进行持续集成和持续交付?

    随着软件开发的快速发展,持续集成和持续交付已经成为现代软件开发中不可或缺的技术。作为一种流程和文化,持续集成和持续交付可以帮助开发团队更快、更高效地开发和部署软件,同时也可以保证软件的质量和稳定性...

    2023年5月17日
    02
  • PHP分页结合搜索功能

    分页结合搜索功能 1.创建一个有搜索功能的表单页面 2.点击搜索的时候,应该按照搜索的关键字进行模糊查询 3.服务器goods_list.php接收表单提交的数据 以后查询的时候,需要携带上拼接的where条件 测试一把: 但是...

    2018年9月22日 PHP自学教程
    0348
  • PHP上传问题的后续问题

    如何验证文件类型 验证文件括展名 验证文件MIME类型 保证上传文件命名的唯一性 时间 时间戳 IP 将上传功能进行封装 如何上传多文件 html文件: 测试代码: 运行结果: $FILE: 第一个[]:文件框名称 第二个[]:属性 ...

    2017年11月8日 PHP自学教程
    0214

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息