本篇內(nèi)容主要講解“PHP怎么實(shí)現(xiàn)隨機(jī)數(shù)字、字母的驗(yàn)證碼功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“PHP怎么實(shí)現(xiàn)隨機(jī)數(shù)字、字母的驗(yàn)證碼功能”吧!
10年積累的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有金城江免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
廢話不多說,直接上代碼:
1、classgd.class.php
0){ if(isset($config['fontfile'])&&is_file($config['fontfile'])&&is_readable($config['fontfile'])){ $this->_fontfile=$config['fontfile']; }else{ return false; } if(isset($config['size'])&&$config['size']>0){ $this->_size=(int)$config['size']; } if(isset($config['width'])&&$config['width']>0){ $this->_width=(int)$config['width']; } if(isset($config['height'])&&$config['height']>0){ $this->_height=(int)$config['height']; } if(isset($config['length'])&&$config['length']>0){ $this->_length=(int)$config['length']; } if(isset($config['snow'])&&$config['snow']>0){ $this->_snow=(int)$config['snow']; } if(isset($config['pixel'])&&$config['pixel']>0){ $this->_pixel=(int)$config['pixel']; } if(isset($config['line'])&&$config['line']>0){ $this->_line=(int)$config['line']; } $this->_image=imagecreatetruecolor($this->_width,$this->_height); return $this->_image; } else{ return false; } } public function getCaptcha(){ $white=imagecolorallocate($this->_image,255,255,255); imagefilledrectangle($this->_image,0,0,$this->_width,$this->_height,$white); $str=$this->_generateStr($this->_length); if(false===$str){ return false; } $fontfile=$this->_fontfile; for($i=0;$i<$this->_length;$i++){ $size=$this->_size; $angle=mt_rand(-30,30); $x=ceil($this->_width/$this->_length)*$i+mt_rand(5,10); $y=ceil($this->_height/1.5); $color=$this->_getRandColor(); //針對(duì)中文字符截取 //$text=mb_substr($str,$i,1,'utf-8'); $text=$str{$i}; imagettftext($this->_image, $size, $angle, $x, $y, $color, $fontfile, $text); } if($this->_snow){ $this->_getSnow(); }else{ if($this->_pixel){ $this->_getPixel(); } if($this->_line){ $this->_getLine(); } } header('content-type:image/png'); imagepng($this->_image); imagedestroy($this->_image); return strtolower($str); } private function _getSnow(){ for($i=1;$i<=$this->_snow;$i++){ imagestring($this->_image,mt_rand(1,5),mt_rand(0,$this->_width),mt_rand(0,$this->_height),'*',$this->_getRandColor()); } } private function _getPixel(){ for($i=1;$i<=$this->_pixel;$i++){ imagesetpixel($this->_image,mt_rand(0,$this->_width),mt_rand(0,$this->_height),$this->_getRandColor()); } } private function _getLine(){ for($i=1;$i<=$this->_line;$i++){ imageline($this->_image,mt_rand(0,$this->_width),mt_rand(0,$this->_height),mt_rand(0,$this->_width),mt_rand(0,$this->_height),$this->_getRandColor()); } } private function _generateStr($length=4){ if($length<1 || $length>30){ return false; } $chars=array( 'a','b','c','d','e','f','g','h','k','m','n','p','x','y','z', 'A','B','C','D','E','F','G','H','K','M','N','P','X','Y','Z', 1,2,3,4,5,6,7,8,9 ); $str=join('',array_rand(array_flip($chars),$length)); return $str; } private function _getRandColor(){ return imagecolorallocate($this->_image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)); } } ?>
2、testCaptcha.php
'fonts/simfang.ttf', //引入字體文件 //'snow'=>50, 'pixel'=>100, 'line'=>10 ); $captcha=new Captcha($config); $captcha->getCaptcha(); ?>
就這樣成功實(shí)現(xiàn)了隨機(jī)數(shù)字、字母的驗(yàn)證碼功能!
到此,相信大家對(duì)“PHP怎么實(shí)現(xiàn)隨機(jī)數(shù)字、字母的驗(yàn)證碼功能”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!