问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php验证码自定义字体样式和字体大小用什么函数

发布网友 发布时间:2022-04-29 08:15

我来回答

4个回答

懂视网 时间:2022-04-29 12:37

yii2验证码样式如何设置

第一步,控制器:

在任意controller里面重写方法

public function actions()
{ return [
        'captcha' => [
         'class' => 'yiicaptchaCaptchaAction',
         'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
         'backColor' => 0x000000,//背景颜色
         'maxLength' => 6, //最大显示个数
         'minLength' => 5,//最少显示个数
         'padding' => 5,//间距
         'height' => 40,//高度
         'width' => 130, //宽度
         'foreColor' => 0xffffff, //字体颜色
         'offset' => 4, //设置字符偏移量 有效果
        ],       ]; 
}

第二步,表单模型:

这里只给出验证码相关的部分。

相关文章教程推荐:yii教程

class ContactForm extends Model{ 
 public $verifyCode; 
 public function rules(){ 
  return [
  ['verifyCode', 'required'],
  ['verifyCode', 'captcha'],
  ];
 }
}

验证规则里面验证码的验证器是captcha

第三步,视图:

用ActiveForm生成对应字段。

captchaAction参数指定第一步是在写在哪里的,默认是site里面。

 <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
 'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
 ]) ?>

验证码,生成和验证的整个流程就完成了。

以上是生成验证码的流程,因为验证码数字是在代码中写死的,如果我们需要数字的话,那该怎么办呢?

很好办,我们可以自己写个类来继承CaptchaAction,重写generateVerifyCode方法,例子:

namespace yiicaptcha;
class Newcaptcha extends CaptchaAction
{
 protected function generateVerifyCode()
 {
 if ($this->minLength > $this->maxLength) {
  $this->maxLength = $this->minLength;
 }
 if ($this->minLength < 3) {
  $this->minLength = 3;
 }
 if ($this->maxLength > 20) {
  $this->maxLength = 20;
 }
 $length = mt_rand($this->minLength, $this->maxLength);

 $letters = '1234567890123456789012';
 $vowels = 'aeiou';
 $code = '';
 for ($i = 0; $i < $length; ++$i) {
  if ($i % 2 && mt_rand(0, 10) > 2 || !($i % 2) && mt_rand(0, 10) > 9) {
  $code .= $vowels[mt_rand(0, 4)];
  } else {
  $code .= $letters[mt_rand(0, 20)];
  }
 }
 return $code;
 }
}

生成类文件成功。
然后再更改控制器的配置

'captcha' => [
 'class' => 'yiicaptchaNewcaptcha',
 'maxLength' => 5,
 'minLength' =>5
],

好了,更改完成,让我们来看下效果吧!

更多yii框架知识,可以观看相关编程学习课程,!!

热心网友 时间:2022-04-29 09:45

imagestring换成imagettftext
imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
第一个是资源图像,第二个就是你要的大小,第三个是角度,x,y 二参数为文字的坐标值 (原点为左上角);然后是颜色,接着就是你要的字体,首先你得先下载ttf字体,存放在根目录,最后就是文字内容

热心网友 时间:2022-04-29 11:03

将imagestring换成imagettftext试试,imagettftext的参数自行百度

热心网友 时间:2022-04-29 12:37

自己封装个不就完了,表示这个意义不大
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 华为P30pro和小米11那个好 VIVO+IQOO7、小米11和华为P30手机哪个更好 有点咳嗽,应该煮些什么能润肺止咳的糖水喝? 小米11和华为p30哪个好 看腾讯视频的时候总会出现中国移动接受或取消,手机发烫,看别的视频 三星s3手机qq视屏很发烫是咋回事 opporeno3为什么打qq视频特别烫手? 为啥QQ视频这么费电,一视频手机就特别烫 QQ开通黄钻 上传视频手机发烫 华为手机qq视频语音,温度高,原因 QQ视频时。手机很热怎么回事 为什么用qq视频对话的时候,手机特别特别烫 为什么QQ电话或者QQ视频,没几分钟电话会发烫,而且不是一般的烫。? 白卫衣染上颜色怎么办 梦见老公被公安局抓,自己和他逃跑 梦见老公被人软禁逃跑又被抓? 梦见老公从监狱里逃出来好多警察追他? 上课的英语单词怎么写 他在七年级八班。用英语怎么说? 国际汉语教师证书 考什么? 小米11和华为mate40选哪个 360浏览器盗图神器怎么设置 华为手机与小米哪个不错 您好 我用的是360浏览器 前段时间右键图片属性还可以用的,现在右键是审查元素之类的,请问是是什么情况 QQ分组里我的好友那组怎么改 梦见孩子身上扎很多针? 梦见肚子里的孩子被人用刀刺死 梦见小孩倒红刺上 黑胶碟片工作原理??? 黑胶碟和光碟原理是一样的吗? 黑胶场唱片机如何做到把声音变为家具的? 有人了解黑胶唱机么 联想一键恢复会把d盘的东西删掉吗 联想一键恢复会删除D盘文件吗 联想重置电脑,会把d,e盘的文件删除吗 联想一键恢复会把d盘的东西删掉吗? 联想的一键还原会不会把我D盘E盘里的东西都弄没了? 如果现在D盘是系统盘,用联想一键恢复是对D盘还是对C盘? 一键恢复会丢失D盘的文件吗? 联想笔记本,请问如果用联想一键恢复会删除桌面上的数据吗?桌面在C盘,或会不会清除其他盘的数据?