php 生成图片验证码方法

PHP自动识别验证码 网上达人写的代码,用php来识别图片上的验证码。包里面有初级和中级,以及提交篇的源码。这个对字体变形的验证码没有办法,对常见的加干扰和文字粘连效果不错。 立即下载

昨天碰到一个需要自己写图片验证码的需要,我用的 Lumen 框架中没有这个功能,需要自己写,网上搜了下,记录成一篇笔记.

代码

<?php
    /**
     * Created by PhpStorm.
     * User: nwei
     * Date: 2018/10/8
     * Time: 15:14
     *
     *    .--,       .--,
     *   ( (  \.---./  ) )
     *    '.__/o   o\__.'
     *       {=  ^  =}
     *        >  -  <
     *       /       \
     *      //       \\
     *     //|   .   |\\
     *     "'\       /'"_.-~^`'-.
     *        \  _  /--'         `
     *      ___)( )(___
     *     (((__) (__)))    高山仰止,景行行止.虽不能至,心向往之.
     *
     */


    namespace App\Tools;


    class VerifyCodeImage {
        private $width;
        private $height;
        private $str;
        private $im;
        private $strColor;

        function __construct($width, $height,$image_code) {
            $this->width  = $width;
            $this->height = $height;
            $this->str    = $image_code;
            $this->createImage();
        }

        /**
         * 生成图片二维码
         */
        function createImage() {
            $this->im = imagecreate($this->width, $this->height);//创建画布
            imagecolorallocate($this->im, 200, 200, 200);//为画布添加颜色
            for ($i = 0; $i < strlen($this->str); $i++) {//循环输出四个数字
                $this->strColor = imagecolorallocate($this->im, rand(0, 100), rand(0, 100), rand(0, 100));
                imagestring($this->im, rand(3, 5), $this->width / 4 * $i + rand(5, 10), rand(2, 5), $this->str[$i], $this->strColor);
            }
            for ($i = 0; $i < 100; $i++) {//循环输出200个像素点
                $this->strColor = imagecolorallocate($this->im, rand(0, 255), rand(0, 255), rand(0, 255));
                imagesetpixel($this->im, rand(0, $this->width), rand(0, $this->height), $this->strColor);
            }
        }


        /**
         * 生成图片二维码并保存
         * @return string
         */
        function show($openid) {
            try{
                removeDir("./imgcode");

                $path = "./imgcode/".date("Y-m-d",time())."/".$openid."/";
                if (!is_dir($path)){ //判断目录是否存在 不存在就创建
                    mkdir($path,0777,true);
                }

                $filename = $path.time().'.png'; //设置文件名
                header('content-type:image/png');//定义输出为图像类型
                imagepng($this->im,$filename);//生成图像
                imagedestroy($this->im);//销毁图像释放内存

                return $filename;

            }catch (\Exception $exception){
                   operate_log("0","生成图片二维码失败",$exception);
                   return false;
            }

        }
    }

使用如下: 

    use App\Tools\VerifyCodeImage;
$router->get('/', function () use ($router) {

    $imageCode = new VerifyCodeImage(80,20,'5698');
    $file_path = $imageCode->show('123456789');

    return [
        "file_path" => env("CSV_HOST").ltrim($file_path,"./")
    ];

});

 

 如果是直接输出图片,可以把 show() 方法改成

function show() {
            header('content-type:image/png');//定义输出为图像类型
            imagepng($this->im);//生成图像
            imagedestroy($this->im);//销毁图像释放内存
 }

 

captcha:使用php产生验证码图片 验证码使用 安装 composer require exinfinite/captcha 使用 产生验证码 use Exinfinite \ Captcha \ Builder ; $ captcha = new Builder (); //使用預設值產生 $ captcha -> build (); //自訂參數 $ captcha -> setSize ( 150 , 45 ) -> setLine ( 6 ) -> setPixel ( 180 ) -> build (); 比对使用者输入验证码是否正确 $ is_valid = $ captcha -> verify ( "使用者輸入內容" ); //Case-insensitive $ is_valid = $ captcha -> verify ( "使用者輸入內容" , true 立即下载

相关推荐

PHP图片验证码的实现

PHP图片验证码的实现

PHP生成图形验证码

PHP生成图片验证码

简单点的博客 2030

PHP实现的验证码类库

PHP实现的验证码类库

PHP生成图片验证码

结合网上资料,初次写出来了~~

青衫无忧的博客 2946

配置oem 13c以监控管理数据库

使用oem13c监控数据库

雅冰石的专栏 1810

深入解析Mifare Classic Crypto1认证流程与密钥交换机制

本文深入解析Mifare Classic Crypto1认证流程与密钥交换机制,详细介绍了Crypto1加密算法的工作原理、认证初始化阶段、随机数交换与密钥流生成过程,以及双向验证步骤。文章还分析了Mifare Classic的安全漏洞,包括随机数生成缺陷和密钥流恢复攻击,并提供了Proxmark3实战演示和防护建议。

c6d7e8f9g的博客 898

PHP 实现动态生成图片验证码系统(支持不同复杂度)

虽然大多数开发者会使用现成的验证码服务或者简单的图形验证码生成,但在一些特定场景下,开发者可能需要实现一个可自定义的、复杂度较高的验证码生成系统,支持动态调整验证码的复杂度、字体、背景、干扰线等。'codeType' => 'alphanumeric' // 验证码类型:'numeric', 'alphabet', 'alphanumeric'22.codeType:设置验证码类型,支持 'numeric'(数字)、'alphabet'(字母)、'alphanumeric'(数字和字母混合)。

安 941

深入浅出DNS系列(一)- DNS杂谈

黄丝玛:班达山,你好,我记性不好,你告诉我搜狐、新浪的网站IP地址好吗? 班达山:你问问DNS先生吧,他专门干这买卖的

jiangsd198的博客 4129

php验证图片_php生成图片验证码的方法

本文为大家分享了php生成图片验证码的方法,供大家参考,具体内容如下首先从指定字符集合中随机抽取固定数目的字符,以一种不规则的方法画在画布上,再适当添加一些干扰点和干扰元素,最后将图片输出,一张崭新的验证码就完成了。前端代码如下:This is a test! 点击刷新//刷新验证码function changeVer(){document.getElementById("verImg").sr...

weixin_42573757的博客 543

【FPGA】AD9653设计和调试总结

基于FPGA的AD9653设计,设计思路,注意事项

weixin_41246509的博客 7591

Python爬取天天基金网历史数据

前言 最近开始学习基金????,感觉需要收集一些数据统计分析才靠谱????毕竟给A股交学费的感觉可不好受???? 网上有很多公开的数据,我这里选择的是天天基金网进行爬取 页面分析 接口我分析过了,有些验证不太好获取数据,所以直接从html提取 在天天基金网中随便选择一款基金,然后点击进入历史数据页面 容易定位出日增长率的css选择器 还有翻页按钮 程序编写 使用selenium打开chrome浏览器进行爬取,全代码如下 from selenium import webdriver from sel

JiajunBernoulli的博客 2949

5种PHP生成图片验证码实例

5种PHP生成图片验证码实例,包括数字验证码、数字+字母验证码、中文验证码、仿google验证码和算术验证码,PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session中。 js验证 $(function() { $("#getcode_num").click(function() { //数字验证 $(this).attr("...

iteye_13343的博客 501

VisionPro开发实战:CogRecordDisplay控件显示与保存图片的完整流程(附C#代码示例)

本文详细解析了VisionPro开发中CogRecordDisplay控件的图像处理全流程,包括图像加载、显示优化、动态清屏及结果保存等关键操作。通过C#代码示例,展示了如何高效使用该控件进行工业视觉应用开发,特别适合自动化检测系统的开发者参考。

weixin_42523792的博客 276

PHP图片验证码生成方法

PHP图片验证码生成方法,代码如下: $verifycode为要生成的验证码,推荐4位。 $image = imagecreate(88, 32); imagecolorallocate($image, 55, 130, 240); $white = imagecolorallocate($image, 255, 255, 255); for ($i = 0; $i &lt...

aquct3574的博客 130

用 ABAP OAuth 2.0 Client 直连 SAP SuccessFactors:从体系到落地的一条龙实践指南

ABAP SMI允许在后端对外部服务的OData端点进行定义与自定义化配置,并以受信连接的方式暴露给ABAP应用调用。它并不替代OAuth,而是扮演端点与自定义参数的集中化定义者,最终认证依旧由完成。对于需要在ABAP后端发起临时或补充型OData调用的场景,SMI是一个轻量而清晰的集成入口。scope的客户端应用已经完成注册,API DomainCompany ID、证书或密钥都已归档。ABAP的Profile与Client已建立并绑定,OA2C_GRANT可见绿色访问状态。SMI。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 286

倍福--TwinSAFE功能块的使用

在安全模块的程序设计中,输入变量取反,或者把PLC的变量连接到安全的功能块程序中, 操作流程 1.1. 功能块输出取反 例如修改IN,右击属性,然后可在Single-Channel选项中选择是NO还是NC的输入信号。 1.2. PLC标准变量作为安全程序的输入 1.2.1. 建立两个PLC变量 1.2.2. 安全程序区创建变量 1.2.3. 功能块变量链接 首先,PLC变量不能直接连到Estop功能块的输入变量中,否则会报错,但PLC可以连接到SafeAnd这些功能块,然后再转出来,如下所示

weixin_41883890的博客 5311

php生成图片验证码代码,php生成图片验证码的方法

验证码是一种安全保护机制,在注册时要求必须有人工操作进行验证,图片验证码的实现十分简单,感兴趣的小伙伴们可以参考一下本文为大家分享了php生成图片验证码的方法,供大家参考,具体内容如下首先从指定字符集合中随机抽取固定数目的字符,以一种不规则的方法画在画布上,再适当添加一些干扰点和干扰元素,最后将图片输出,一张崭新的验证码就完成了。前端代码如下:This is a test! 点击刷新//刷新验证...

weixin_40001967的博客 323

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

php生成图片验证码代码,php生成图形验证码几种方法小结

我们先来检查一下自己的php是不是打开了gd库。if(extension_loaded('gd')) {echo '你可以使用gd';foreach(gd_info() as $cate=>$value)echo "$cate: $value";}elseecho '你没有安装gd扩展';?>如果有返回信息就正确可以常用使用了例1/*** vCode(m,n,x,y) m个数字 显示...

weixin_29720641的博客 342

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PHP生成图片随机验证码的方法

PHP生成图片随机验证码的方法,代码很短,很实用

QiaoRuoZhuo的专栏 976

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

PHP中面向对象关于验证码

namespace Framework; class Verify { //宽 protected $width; //高 protected $height; //图片类型 protected $imgType; //文字类型 protected $codeType; //文字的个数 protected $num; //保存的验证码字符串 protec

zhumengbingbing的专栏 809

生成验证码图片(php)

最近在学习前端js时,学习到了如何生成验证码图片,觉得有点神奇(我现在可能觉得什么都很神奇),所以在这里总结 记录一下。 生成图片的后台PHP代码:(命名为 code.php) <?php session_start(); getCode(4,60,20); function getCode($num,$w,$h){ //位数,宽,高 $d...

transparent_li的博客 218

php图片验证码

      php里图片验证码的实现的大概思路是:生成随机验证码,把验证码写到session中,生成图片,把验证码写到图片上,输出图片。       下面是从网上找来的一段生成验证码图片的类verify.php: &lt;?php session_start(); session_register("login_check_number"); //如果浏览器显示“图像XXX因其本身有错无...

来时的路 195

php实现验证码的简单类

<?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/8/25 0025 * Time: 18:16 */ class Code{ protected $number; protected $type; protected $width; protected $he...

dw5235的博客 258

5种PHP生成图片验证码实例详解

5种PHP生成图片验证码实例,包括数字验证码、数字+字母验证码、中文验证码、仿google验证码和算术验证码,PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session中。 js验证 $(function() { $("#getcode_num").click(function() { //数字验证 $(this).attr("src", 'code_num.php?' + Math.random()); }); $("#chk.

BUG制造者:图图 <p>这是一个P标签</p> 5377

验证码Captcha.class.php代码

&lt;?php class Captcha{     private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';    //随机因子,     private $code;                     //验证码字符串     private $codelen = 4;              /...

baidu_36681154的博客 658

一分钟学会使用PHP生成网页验证码

    现在Web页面上的表单一般都会内嵌一条验证码输入,以防止服务器被恶意DoS攻击或者不法之徒利用机器程序自动贴牛皮癣广告。在PHP里的简单实现方法如下:1. 首先在表单页面展现之前,生成一副图片,并添加上一些干扰像素或线段(防止OCR程序自动识别)再由PHP程序自动生成随机的待验证的一串数字和字母组合的字符, 调用imagettftext()函数画到图片中,并把这串字符保存到

陈敏的博客 1万+
上一篇: php 中奖概率算法
下一篇: Codeigniter 扩展核心类
卩杉
博客等级 码龄10年 43粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值