第一步:創(chuàng)建一個(gè)畫布
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比昭蘇網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式昭蘇網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋昭蘇地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。第二步:創(chuàng)建顏色
第三步:準(zhǔn)備字符
第四步:往 畫布上寫字符
第五步:畫干擾線(點(diǎn))
第六步:輸出格式
第七步:輸出圖片
第八步:銷毀資源
<?php verify(); function verify($width = 100 , $height = 40 , $num = 5 , $type = 3 ){ //1 創(chuàng)建畫布 $image = imagecreatetruecolor($width , $height); //2 創(chuàng)建顏色 //因?yàn)楹筮吙偸怯茫詫懥藘蓚€(gè)函數(shù),分別是lightColor(淺顏色)、deepColor(深顏色) //3 創(chuàng)建字符 //這里是自己選擇的類型,1 就是純數(shù)字,2 就是純小字母, 3 就是數(shù)字大小寫字母的混合 switch($type){ case 1: //定義字符串 $str = "0123456789"; //打亂字符串 $strNew = str_shuffle($str); //截取$num個(gè) $string = substr($strNew , 0 , $num); break; case 2: //定義字符 $arr = range('a' , 'z'); //打亂字符串?dāng)?shù)組 shuffle($arr); //截取 $tmp = array_slice($arr , 0 , $num); //連成字符串 $string = join('' , $tmp); break; case 3: $str = "23456789abcdefghjklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ"; $string = substr(str_shuffle($str) , 0 , $num); break; } //給背景填充淺顏色 //背景顏色太深的話驗(yàn)證碼就看不清了 imagefilledrectangle($image , 0 , 0 , $width , $height , lightColor($image)); //4 往畫布上寫入字符 for($i = 0; $i<$num; $i++) { //因?yàn)槲覀冊(cè)O(shè)定的是輸出5 個(gè)字符,所以$i是小于的$num //floor是取整,$width / $num 把寬度分了$num塊地,*$i是一個(gè)字符占一塊地,以免全都堆在一塊看不出來(lái) $x = floor($width / $num) * $i; $y = mt_rand(10 , $height - 20); imagechar ($image , 5 , $x , $y , $string[$i] , deepColor($image)); } //5 畫干擾線、點(diǎn) //干擾線 for($i = 0; $i<$num; $i++) { imagearc ($image , mt_rand(10 , $width) , mt_rand(10 , $height) , mt_rand(10 , $width) , mt_rand(10 , $height) , mt_rand(0 , 10) , mt_rand(0 , 270) , deepColor($image)); } //干擾點(diǎn) for( $i = 0; $i<50; $i++) { imagesetpixel($image , mt_rand(0 , $width) , mt_rand(0 , $height) , deepColor($image)); } ob_clean();//擦除緩沖區(qū) //6 告訴瀏覽器輸出格式:png header("Content-type: image/png"); //7 輸出圖片 imagepng($image); //8 銷毀 imagedestroy($image); return $string; //echo $string; } //設(shè)置深淺顏色 function lightColor ($image) { return imagecolorallocate($image , mt_rand(120 , 255) , mt_rand(120 , 255) , mt_rand(120 , 255)); } function deepColor ($image) { return imagecolorallocate($image , mt_rand(0 , 120) , mt_rand(0 , 120) , mt_rand(0 , 120)); } ?>特別說(shuō)明:
ob_clean();//擦除緩沖區(qū)之前是沒(méi)有加上這個(gè)的,結(jié)果就告訴我“因存在錯(cuò)誤而無(wú)法顯示”,如下圖:
不過(guò)幸運(yùn)的是,在百度上找到答案了:https://blog.csdn.net/ghbfgb/article/details/50845075。加上之后,就很輕易的解決了這個(gè)問(wèn)題,現(xiàn)在的效果是這樣的:
好了。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站標(biāo)題:PHP實(shí)現(xiàn)驗(yàn)證碼-創(chuàng)新互聯(lián)
本文路徑:http://aaarwkj.com/article28/cocsjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、品牌網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)、企業(yè)建站、軟件開發(fā)、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容