php 生成验证码干扰元素,PHP生成指定位数验证码与可控干扰元素第二篇
這篇文章介紹的內容是關于PHP生成指定位數驗證碼與可控干擾元素第二篇,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
生成驗證碼:文件名為:buildVerifyCode.func.php<?php
//生成指定位數可控混合驗證碼
function buildVerifyCode($type,$length){
//$type0,1,2可以為數字,大小寫字母,數字加大小寫字母驗證碼
//$length指定了驗證碼的長度
switch($type){
case 0:
$string=join('',range(0,9));
break;
case 1:
//range('a','z')將括號中的內容作為鍵值生成一個索引數組
//array_merge($array1,$array2)合并兩個數組中的鍵值,生成新索引數組
//join('',$array)以空連接數組中的值,以數組的內容生成字符串
$string=join('',array_merge(range('a','z'),range('A','Z')));
break;
case 2:
$string=join('',array_merge(range('a','z'),range('A','Z'),range(0,9)));
break;
}
//str_shuffle打亂字符串,返回值是字符串,不像shuffle,返回值是bool
$string=str_shuffle($string);
//substr截取$length位數的驗證碼
return substr($string,0,$length);
}
生成圖片驗證碼:文件名為:getVerifyCode.func.php<?php
function getVerifyCodeImg($type=2,$length=4,$pixel=false,$line=false){
$width=100;
$height=30;
//新建畫布,默認黑色底色
$image=imagecreatetruecolor($width,$height);
//新建白色,用于后面覆蓋黑色的底色
$white=imagecolorallocate($image,255,255,255);
//新建白色矩形區域,覆蓋原始畫布
imagefilledrectangle($image,1,1,$width-1,$height-1,$white);
//引入文件
require 'buildVerifyCode.func.php';
//調用buildVerifyCode方法
$chars=buildVerifyCode($type,$length);
for($i=0;$i
$size=mt_rand(14,16);
$angle=mt_rand(-15,15);
$x=(100/$length)*$i;
$y=mt_rand(20,25);
$color=imagecolorallocate($image,mt_rand(70,100),mt_rand(50,120),mt_rand(70,130));
$fontfiles=['msyh.ttc','msyhbd.ttc','msyhl.ttc','simsun.ttc','Sitka.ttc'];
$fontfile="../fonts/".$fontfiles[mt_rand(0,4)];
$text=substr($chars,$i,1);
imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text);
}
if($pixel){
for($i=0;$i
$color=imagecolorallocate($image,mt_rand(150,160),mt_rand(140,170),mt_rand(130,200));
imagesetpixel($image,mt_rand(0,$width-1),mt_rand(0,$height-1),$color);
}
}
if($line){
for($i=0;$i
$color=imagecolorallocate($image,mt_rand(150,180),mt_rand(110,170),mt_rand(140,190));
imageline($image,mt_rand(0,$width-2),mt_rand(0,$height-3),mt_rand(0,$width-4),mt_rand(0,$height-5),$color);
}
}
header('content-type:image/png');
imagepng($image);
}
調用驗證碼:文件名為:getVerifyImg.php<?php
// 測試
// require 'buildVerifyCode.func.php';
// echo buildVerifyCode(2,4);
require 'getVerifyCodeImg.php';
/**
* $type驗證碼類型,1為純數字,2為大小寫字母,3為數字加大小寫字母
* $length驗證碼長度,建議設置區間為4-6
* $pixel干擾元素小點,建議設置200
* $line干擾元素線條,建議設置4
* getVerifyCodeImg($type,$length,$pixel,$line);
*/
getVerifyCodeImg(2,6,200,4);
相關推薦:
總結
以上是生活随笔為你收集整理的php 生成验证码干扰元素,PHP生成指定位数验证码与可控干扰元素第二篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广发双币信用卡哪个好 广发双币信用卡汇总
- 下一篇: linux查看文件从底部开始,linux