中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

PHP驗證碼類實現驗證碼功能
來源:易賢網 閱讀:1080 次 日期:2015-04-15 14:42:38
溫馨提示:易賢網小編為您整理了“PHP驗證碼類實現驗證碼功能”,方便廣大網友查閱!

PHP驗證碼類實現驗證碼功能,有兩個方法,分別是用內置字體和自定義字體生成驗證碼。具體代碼如下:

<?php

/**

* 驗證碼生成類

* @example

* $pic = new uImage();

* $code = $pic->getVerifyCode();

* header("Content-type:image/png");

* $pic->captchaFromFont($font='RAVIE.TTF'); or $pic->captcha();

*/

class uImage {

/**

* 驗證碼字符

* @access protected

*/

protected $code;

/**

* 生成圖片驗證碼,直接輸出的是圖片,字體大小是內置字體,最大是5

* @access public

* @param int $width 驗證碼圖片寬度

* @param int $height 驗證碼圖片的高度

* @param int $snow 背景雪花的數量

* @param int $line 干擾線的條數

*/

public function captcha($width=100, $height=30, $snow=80, $line=3) {

$pic = imagecreatetruecolor($width, $height);

$backageColor = imagecolorallocate($pic, 0xFF, 0xFF, 0xFF);

imagefill($pic, 0, 0, $backageColor);

//打雪花

for($i=0; $i<=$snow;$i++) {

$color = imagecolorallocate($pic, mt_rand(150, 230), mt_rand(150, 230), mt_rand(150, 230));

imagechar($pic, 1, mt_rand(0, $width), mt_rand(0, $height), "*", $color);

imagecolordeallocate ($pic, $color);

}

//畫干擾線

for($i=0; $i<=$line; $i++) {

$x1 = mt_rand(2, $width * 0.2);

$x2 = mt_rand($width * 0.8, $width - 2);

$y1 = mt_rand(2, $height - 2);

$y2 = mt_rand(2, $height - 2);

$color = imagecolorallocate($pic, mt_rand(130, 250), mt_rand(130, 250), mt_rand(130, 250));

imageline($pic, $x1, $y1, $x2, $y2, $color);

imagecolordeallocate ($pic, $color);

}

//畫字符

$code = $this->code;

$eachW = $width / strlen($code); //圖片依據字符個數分配等份數

$fontWidth = imagefontwidth(5); //取得字體寬度

$fontHeight = imagefontheight(5); //取得字體高度

for($i=0; $i<strlen($code);$i++) {

$color = imagecolorallocate($pic, mt_rand(30, 155), mt_rand(30, 155), mt_rand(30, 150));

$x = mt_rand($eachW * $i, $eachW * ($i+1)-$fontWidth);

$y = mt_rand(3, $height-$fontHeight);

imagechar($pic, 5, $x, $y, $code{$i}, $color); //水平畫字符

imagecolordeallocate ($pic, $color);

}

//輸出

ob_start();

ob_clean();

imagepng($pic);

imagedestroy($pic);

}

/**

* 根據自定義字體生成驗證碼

* @access public

* @param string $font 字符文件, TrueType 字體文件,.ttf字體

* @param int $fontWeight 字符大小

* @param int $width 圖片寬

* @param int $height 圖片高

* @param int $snow 背景雪花個數

* @param int $line 干擾線條數

* @param int $padding 圖片內邊距

*/

public function captchaFromFont($font, $fontWeight=16, $width=100, $height=30, $snow=80, $line=3, $padding=3){

if(!isset($font)){

return false;

}

$pic = imagecreatetruecolor($width, $height);

$backageColor = imagecolorallocate($pic, 0xFF, 0xFF, 0xFF);

imagefill($pic, 0, 0, $backageColor);

imagecolordeallocate ($pic, $backageColor);

//打雪花

for($i=0; $i<=$snow;$i++) {

$color = imagecolorallocate($pic, mt_rand(150, 230), mt_rand(150, 230), mt_rand(150, 230));

imagechar($pic, 1, mt_rand(0, $width), mt_rand(0, $height), "*", $color);

imagecolordeallocate ($pic, $color);

}

//畫干擾線

for($i=0; $i<=$line; $i++) {

$x1 = mt_rand(2, $width * 0.2);

$x2 = mt_rand($width * 0.8, $width - 2);

$y1 = mt_rand(2, $height - 2);

$y2 = mt_rand(2, $height - 2);

$color = imagecolorallocate($pic, mt_rand(130, 250), mt_rand(130, 250), mt_rand(130, 250));

imageline($pic, $x1, $y1, $x2, $y2, $color);

imagecolordeallocate ($pic, $color);

}

//畫字符

$code = $this->code;

$eachW = $width / strlen($code); //圖片依據字符個數分配等份數

$codeArray = str_split($code);

for($i=0; $i<count($codeArray); $i++){

//取得字符寬高

$fontbox = imagettfbbox($fontWeight, 0, $font, $codeArray[$i]);

$fontWidth = $fontbox[2] - $fontbox[0];

$fontHeight = $fontbox[1] - $fontbox[7];

$color = imagecolorallocate($pic, mt_rand(30, 155), mt_rand(30, 155), mt_rand(30, 150)); //字符顏色

$angle = mt_rand(-20, 20); //字符角度

if($i==0){

$start = $eachW * $i+$padding;

$end = $eachW * ($i+1)-$fontWidth;

}

elseif($i == count($codeArray)){

$start = $eachW * $i;

$end = $eachW * ($i+1)-$fontWidth-$padding;

}

else{

$start = $eachW * $i;

$end = $eachW * ($i+1)-$fontWidth-$padding;

}

$x = $start < $end ? mt_rand($start, $end) : $start;

$y = ($fontHeight+$padding) > $height ? $padding : mt_rand($fontHeight+$padding, $height-$padding);

imagettftext($pic, $fontWeight, $angle, $x, $y, $color, $font, $codeArray[$i]); //用 TrueType 字體向圖像寫入文本

imagecolordeallocate ($pic, $color);

}

//輸出

ob_start();

ob_clean();

imagepng($pic);

imagedestroy($pic);

}

/**

* 獲取驗證碼

* @access public

* @param int $len 驗證碼字符的長度

* @return strint 生成的驗證碼字符

*/

public function getVerifyCode($len=4){

if(!isset($this->code)){

$this->code = $this->getCode($len);

}

return $this->code;

}

/**

* 生成驗證碼

* @access protected

* @param int $len 驗證碼字符的長度

* @return strint 生成的驗證碼字符

*/

protected function getCode($len) {

$str = "23456789abcdefghijklmnqrstuvwxyz";

$code = "";

for($i=0; $i<$len; $i++) {

$code .= $str{mt_rand(0, strlen($str)-1)};

}

$this->code = $code;

return $code;

}

}

更多信息請查看IT技術專欄

更多信息請查看CMS教程
易賢網手機網站地址:PHP驗證碼類實現驗證碼功能
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美一区综合| 国产精品亚洲综合色区韩国| 亚洲精品一区在线观看| 中文精品99久久国产香蕉| 欧美在线关看| 美日韩精品免费观看视频| 国产精品乱码人人做人人爱| 欧美—级a级欧美特级ar全黄| 欧美一区二区国产| 欧美激情bt| 在线欧美不卡| 久久一区二区三区国产精品| 一本色道久久88精品综合| 欧美日韩成人综合| 亚洲精品四区| 国产精品白丝黑袜喷水久久久| 亚洲美女色禁图| 性欧美8khd高清极品| 久久国产手机看片| 国产欧美精品va在线观看| 久久久久久久久久久一区| 狠狠色狠狠色综合人人| 亚洲国产另类精品专区| 牛牛影视久久网| 亚洲欧美激情在线视频| 国产精品理论片| 久久精品一区二区国产| 亚洲高清不卡在线观看| 国产精品一区二区三区免费观看| 国产综合色产在线精品| 麻豆免费精品视频| 亚洲欧洲一区二区在线播放 | 亚洲高清在线观看| 麻豆精品在线视频| 亚洲激精日韩激精欧美精品| 国产精品久久| 国产日韩在线视频| 亚洲电影第1页| 一区二区电影免费观看| 亚洲免费在线观看| 欧美精品少妇一区二区三区| 永久久久久久| 亚洲制服丝袜在线| 久久女同互慰一区二区三区| 国产精品日本欧美一区二区三区| 亚洲精品免费看| 牛人盗摄一区二区三区视频| 黄色成人91| 久久亚洲影院| 亚洲国产清纯| 国产精品久久久久国产a级| 久久成人免费| 亚洲伊人网站| 国产亚洲精品一区二区| 洋洋av久久久久久久一区| 噜噜爱69成人精品| 一区二区视频欧美| 久久久xxx| 亚洲电影网站| 欧美伊人久久| 国内精品一区二区| 免费在线观看精品| 一区二区三区四区五区在线| 国产精品一区二区在线观看| 亚洲欧美一区在线| 亚洲激精日韩激精欧美精品| 看片网站欧美日韩| 亚洲第一在线视频| 欧美日韩xxxxx| 一本色道久久综合亚洲91| 国产精品久久77777| 老司机免费视频一区二区| 亚洲午夜av电影| 一区二区在线观看视频在线观看| 欧美福利一区| 久久国产精品黑丝| 欧美sm视频| 欧美一区二区免费视频| 夜夜嗨av一区二区三区中文字幕 | 红桃视频国产一区| 麻豆精品一区二区av白丝在线| 一区二区三区欧美视频| 亚洲青色在线| 亚洲欧美另类在线| 亚洲精选一区| 亚洲午夜91| 欧美日韩成人综合| 国产亚洲成精品久久| 欧美日韩国产亚洲一区| 久久久久久久尹人综合网亚洲| 欧美日韩精品一区| 久久综合久久88| 国产一区二区三区四区三区四| 国产在线播精品第三| 欧美一级夜夜爽| 国产精品一区免费视频| 国产在线高清精品| 久久久久这里只有精品| 国产自产女人91一区在线观看| 久久不射2019中文字幕| 国产精品午夜在线| 国产欧美三级| 美女日韩欧美| 男人的天堂亚洲| 欧美日韩一区二区三区免费看 | 亚洲主播在线播放| 亚洲韩日在线| 亚洲美女性视频| 欧美精品粉嫩高潮一区二区 | 久久久国产精品一区二区中文| 亚洲国产欧美一区二区三区久久| 亚洲成人自拍视频| 亚洲电影有码| 国产精品扒开腿做爽爽爽软件| 欧美午夜大胆人体| 亚洲精品三级| 国产精品视频免费在线观看| 国产精品色网| 浪潮色综合久久天堂| 亚洲激情欧美| 国产精品一区在线观看| 好吊成人免视频| 国产日韩综合| 久久精品在线观看| 欧美日韩亚洲系列| 一区二区电影免费观看| 欧美中文字幕视频在线观看| 国产精品福利久久久| 久久综合九色欧美综合狠狠| 国产欧美精品在线观看| 久久黄色级2电影| 久久精品夜色噜噜亚洲aⅴ| 亚洲第一中文字幕| 国产精品久久久久aaaa| 欧美激情综合五月色丁香小说| 久久亚洲春色中文字幕久久久| aa日韩免费精品视频一| 亚洲在线免费视频| 欧美va亚洲va日韩∨a综合色| 亚洲天堂视频在线观看| 亚洲经典在线看| 欧美亚洲一区三区| 国产精品久久久久毛片软件| 欧美日韩麻豆| 欧美视频1区| 久久国产日本精品| 亚洲另类在线视频| 亚洲欧美成人精品| 午夜综合激情| 国产精品入口麻豆原神| 亚洲国产日韩在线一区模特| 欧美在线一区二区| 欧美一区二区黄| 国产资源精品在线观看| 国产精品99久久99久久久二8| 欧美色中文字幕| 99精品国产高清一区二区| 国产视频欧美| 欧美日本在线看| 国产精品成人免费| 亚洲激情在线观看| 国产视频一区欧美| 久久久亚洲一区| 午夜久久黄色| 香蕉久久国产| 亚洲色图自拍| 午夜精品免费| 国产精品久久久久77777| 99日韩精品| 欧美亚洲一级片| 欧美一区二区三区另类| 国产精品日韩欧美| 亚洲午夜在线| 亚洲天堂av综合网| 国产亚洲福利一区| 亚洲精品一区二区三区在线观看| 欧美在线视频一区| 亚洲欧美日韩精品一区二区 | 亚洲图片欧洲图片av| 99精品国产在热久久婷婷| 亚洲日本理论电影| 黄色亚洲在线| 夜夜嗨av一区二区三区网站四季av| 欧美日本一道本| 欧美精品在线观看一区二区| 欧美视频在线观看免费| 国产主播一区二区三区| 亚洲一区二区精品在线| 久久国产乱子精品免费女| 午夜精品一区二区三区在线视| 亚洲欧美清纯在线制服| 亚洲欧美日韩在线播放| 欧美日韩1区2区3区| 欧美国产免费| 亚洲无限av看| 亚洲欧美日韩视频二区| 欧美电影打屁股sp| 亚洲网站在线| 一本不卡影院| 亚洲欧美日韩另类|