php 验证码扩展包 Gregwar/Captcha

php 有很多优秀的扩展包可以帮我们缩短开发时间,避免重复造轮子.验证码扩展包 Gregwar/Captcha 就是其中的一个.

1. 利用 composer 安装

composer require gregwar/captcha

2. 使用示例 

2.1. 获取生成的验证码中的内容,并将验证码图片保存到本地

# 测试路由
Route::get('test', function () {
    $builder = new \Gregwar\Captcha\CaptchaBuilder();
    $captcha = $builder->build();
    $captcha_content = $captcha->getPhrase();
    \Illuminate\Support\Facades\Cache::put('test_captcha',$captcha_content,2);
    $captcha->save('out.jpg');
});

代码分析

  • 实例化一个 CaptchaBuilder  对象,调用 build() 方法生成图片验证码.
  • build() 方法中可以传入要生成图片的宽,高,字体等参数.

  •  getPhrase() 方法获取图片验证码的内容
  • save() 方法将图片验证码保存到本地

这就是我们生成的图片验证码文件和存到缓存中的验证码内容,用来与表单提交的验证码内容进行比对.

 

2.1 将生成的验证码图片转成 base64 格式

# 测试路由
Route::get('test', function () {
    $builder = new \Gregwar\Captcha\CaptchaBuilder();
    $captcha = $builder->build();
    $captcha_content = $captcha->getPhrase();
    \Illuminate\Support\Facades\Cache::put('test_captcha',$captcha_content,2);
    $captcha_base64_content = $captcha->inline();
    info($captcha_base64_content);
});

代码分析

  • inline() 方法可以将验证码图片转成 base64 格式.
  • info() 方法是 Laravel 的辅助函数,将信息写入日志文件「我用的是 Laravel 框架」

将日志中的 base64 内容黏贴到浏览器访问

 

2.3 自定义验证码的长度

# 测试路由
Route::get('test', function () {
    $phraseBuilder = new PhraseBuilder(7);
    $builder = new \Gregwar\Captcha\CaptchaBuilder(null,$phraseBuilder);
    $captcha = $builder->build();
    $captcha_content = $captcha->getPhrase();
    \Illuminate\Support\Facades\Cache::put('test_captcha',$captcha_content,2);
//    $captcha_base64_content = $captcha->inline();
//    info($captcha_base64_content);
});

2.4 自定义验证码的内容范围

有时我们需要自定义验证码的的内容范围,比如只能是 1-5a-f 的 4 个数字.

# 测试路由
Route::get('test', function () {
    $phraseBuilder = new PhraseBuilder(4,'12345abcdef');
    $builder = new \Gregwar\Captcha\CaptchaBuilder(null,$phraseBuilder);
    $captcha = $builder->build();
    $captcha_content = $captcha->getPhrase();
    \Illuminate\Support\Facades\Cache::put('test_captcha',$captcha_content,2);
//    $captcha_base64_content = $captcha->inline();
//    info($captcha_base64_content);
});

 

更多用法参看文档 https://github.com/Gregwar/Captcha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值