日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

验证码类,生成验证码

發(fā)布時間:2023/12/15 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 验证码类,生成验证码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
class Captcha{
?
? ? private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789'; ? ?//隨機因子,
? ? private $code; ? ? ? ? ? ? ? ? ? ? //驗證碼字符串
? ? private $codelen = 4; ? ? ? ? ? ? ?//驗證碼長度
? ? private $width = 150; ? ? ? ? ? ? ?//寬度
? ? private $height = 40; ? ? ? ? ? ? ?//高度
? ? private $img; ? ? ? ? ? ? ? ? ? ? ?//圖形資源句柄
? ? private $font; ? ? ? ? ? ? ? ? ? ? //指定的字體
? ? private $fontsize = 20; ? ? ? ? ? ?//指定字體大小
? ? private $fontcolor; ? ? ? ? ? ? ? ?//指定字體顏色
?
? ? //構(gòu)造方法初始化
? ? public function __construct($codelen=4,$width=150,$height=40,$fontsize = 20,$font="elephant.ttf") {
?
? ? ? ? ? ? $this->codelen = $codelen;
? ? ? ? ? ? $this->width = $width;
? ? ? ? ? ? $this->height = $height;
? ? ? ? ? ? $this->fontsize = $fontsize;
? ? ? ? ? ? $this->font = $font;
? ? ?
? ? } ??
?
? ? //生成隨機碼
? ? private function createCode() {
?
? ? ? ? $_len = strlen($this->charset)-1;
? ? ? ? for ($i=0;$i<$this->codelen;$i++) {
? ? ? ? ? ? $this->code .= $this->charset[mt_rand(0,$_len)]; ? ?
? ? ? ? }
? ? ?
? ? }
?
? ? //生成背景
? ? private function createBg() {
? ? ? ? $this->img = imagecreatetruecolor($this->width, $this->height);
? ? ? ? $color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));
? ? ? ? imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color);


? ? }
?
? ? //生成文字
? ? private function createFont() {
? ? ?
? ? ? ? $_x = $this->width / $this->codelen;
? ? ? ? for ($i=0;$i<$this->codelen;$i++) {
?
? ? ? ? ? ? $this->fontcolor = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
? ? ? ? ? ? imagettftext($this->img,$this->fontsize,mt_rand(-30,30),$_x*$i+mt_rand(1,5),$this->height / 1.4,$this->fontcolor,$this->font,$this->code[$i]);
? ? ? ? ?
? ? ? ? }
? ? ?
? ? }
?
? ? //生成線條、雪花
? ? private function createLine() {
?
? ? ? ? for ($i=0;$i<6;$i++) {
?
? ? ? ? ? ? $color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
? ? ? ? ? ? imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$color);
? ? ? ? ?
? ? ? ? } ??
? ? ? ? for ($i=0;$i<100;$i++) {
?
? ? ? ? ? ? $color = imagecolorallocate($this->img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
? ? ? ? ? ? imagestring($this->img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color);
? ? ? ? ?
? ? ? ? }
? ? ?
? ? }
?
? ? //輸出
? ? private function outPut() {
?
? ? ? ? header('Content-type:image/png');
? ? ? ? imagepng($this->img);
? ? ? ? imagedestroy($this->img);
? ? ?
? ? }
?
? ? //對外生成
? ? public function generateCode() {
?
? ? ? ? $this->createBg();
? ? ? ? $this->createCode();
? ? ? ? $this->createLine();
? ? ? ? $this->createFont();
? ? ? ? $this->outPut();
? ? ?
? ? }
?
? ? //獲取驗證碼
? ? public function getCode() {
?
? ? ? ? return strtolower($this->code);
? ? ?
? ? }
?
}
?
//調(diào)用實例
//$c = new Captcha();
//$c->generateCode();
//$_SESSION['captcha'] = $c->getCode();

總結(jié)

以上是生活随笔為你收集整理的验证码类,生成验证码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。