一個(gè)簡(jiǎn)單的PHP驗(yàn)證碼實(shí)現(xiàn)代碼
實(shí)現(xiàn)代碼:
<?php
//將驗(yàn)證碼保存到session里,供全局使用
session_start();
$nums = "";
for($i=0;$i<4;$i++){
//產(chǎn)生隨機(jī)數(shù)并轉(zhuǎn)換成十六進(jìn)制
$nums.=dechex(mt_rand(0,15));
}
//將驗(yàn)證碼寫入session
$_SESSION['code']=$nums;
//設(shè)置驗(yàn)證碼長(zhǎng)和寬
$_width = 60;
$_height = 20;
//創(chuàng)建一張圖片
$_img = imagecreatetruecolor($_width,$_height);
//創(chuàng)建一個(gè)白色
$_white = imagecolorallocate($_img,220,250,250);
//填充背景
imagefill($_img,0,0,$_white);
//隨機(jī)畫6條線條
for($i=0;$i<6;$i++){
$_rnd_color = imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imageline($_img,mt_rand(0,$_width),mt_rand(0,$_width),mt_rand(0,$_width),mt_rand(0,$_width),$_rnd_color);
}
//隨機(jī)畫出雪花
for($i=0;$i<60;$i++){
imagestring($_img,1,mt_rand(1,$_width),mt_rand(1,$_height),"*",imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
}
//輸出驗(yàn)證碼
for($i=0;$i<strlen($_SESSION['code']);$i++){
imagestring($_img,mt_rand(6,10),$i*$_width/4+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],imagecolorallocate($_img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
}
//輸出和銷毀
header("Content-Type:image/png");
imagepng($_img);
imagedestroy($_img);
?>
相關(guān)文章
php設(shè)計(jì)模式之建造器模式分析【星際爭(zhēng)霸游戲案例】
這篇文章主要介紹了php設(shè)計(jì)模式之建造器模式,結(jié)合星際爭(zhēng)霸游戲案例形式分析了PHP建造器模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-01-01Ajax提交表單時(shí)驗(yàn)證碼自動(dòng)驗(yàn)證 php后端驗(yàn)證碼檢測(cè)
Ajax提交表單時(shí)實(shí)現(xiàn)驗(yàn)證碼自動(dòng)驗(yàn)證,驗(yàn)證碼先檢測(cè)正確性,不正確則不提交表單,更新驗(yàn)證碼,php后端驗(yàn)證碼檢測(cè),感興趣的小伙伴們可以參考一下2016-07-07PHP微信開發(fā)之根據(jù)用戶回復(fù)關(guān)鍵詞\位置返回附近信息
這篇文章主要為大家詳細(xì)介紹了PHP微信開發(fā)之簡(jiǎn)單實(shí)現(xiàn)根據(jù)用戶回復(fù)關(guān)鍵詞\位置返回附近信息 ,感興趣的小伙伴們可以參考一下2016-06-06