使用 gregwar/captcha 生成固定字符的验证码

使用 gregwar/captcha 可以方便地生成验证码图片(直接输出或 base64)

$builder = new CaptchaBuilder;
$builder->build();
$text = $builder->getPhrase(); // 验证码文本
$pic = $builder->inline();// base64 captcha

现如今在 laravel 本地环境中(非 production), 不想每次生成新的要去图片查验的验证码, 查看文档, 说是 "直接使用 $builder = new CaptchaBuilder('12345')", 其中的 12345 (phrase) 必须为 string
但是这样再使用 $builder->inline() 会报错, 无法生成验证码图片

经过查看 CaptchaBuilder.php 类文件, 比较两种方式有什么差别() 可以发现, 随机生成验证码我多走了一步 $builder->build(), 而这正是通过 GD 库来绘制图片的步骤. 问题的原因找到了

看完 build() 方法会看到 return $this, 于是可以通过 $builder = $builder->build() 来获取最新的实例, 接下来就可以使用 inline() 方法了

ps: 其实就算没有 return $this (不使用 $builder = $builder->build() 而用 $builder->build() ) 也可以正常返回 base64 图片, 因为图片内容在方法中传回给实例的属性了, 在 inline() 方法中会调到到这些属性

`

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容