最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php實(shí)現(xiàn)生成驗(yàn)證碼實(shí)例分享

 更新時(shí)間:2016年04月10日 08:53:36   作者:aqiaqi  
由于注冊(cè)的時(shí)候常常會(huì)用到注冊(cè)碼來(lái)防止機(jī)器惡意注冊(cè),這里我發(fā)表一個(gè)產(chǎn)生圖片驗(yàn)證碼的基本圖像,很簡(jiǎn)陋,有需要的小伙伴可以參考下

image.func.php

<?php 
require_once('string.func.php');
 
 function verifyImage( $type=1,$length=4,$pixel=0,$line=0,$sess_name="verify"){ 
 
  session_start();
  /*定義長(zhǎng)度和寬度*/
$width=80;
$height=30;
/* 創(chuàng)建畫布*/
$image=imagecreatetruecolor($width, $height);
 
/*本函數(shù)用來(lái)匹配圖形的顏色,供其它繪圖函數(shù)使用。參數(shù) image 表示圖形的 handle。參數(shù) red、green、blue 是色彩三原色,其值從 0 至 255....我在此定義黑色和白色*/
$white=imagecolorallocate($image, 255, 255, 255);
$black=imagecolorallocate($image,0,0,0);
 
/*本函數(shù)將圖片的封閉長(zhǎng)方形區(qū)域著色。參數(shù) x1、y1 及 x2、y2 分別為矩形對(duì)角線的坐標(biāo)。參數(shù) col 表示欲涂上的顏色*/
imagefilledrectangle($image, 1, 1, $width-2, $height-2, $white);
 
/*buildRandomString函數(shù)用來(lái)生成一個(gè)驗(yàn)證碼*/
$chars=buildRandomString($type,$length);
 
/*將驗(yàn)證碼給session以便用來(lái)判斷用戶輸入是否正確*/
$_SESSION[$sess_name]=$chars;
 
/*定義字體庫(kù)*/
$fontfiles=array('msyh.ttf','msyhbd.ttf','simsun.ttc','SIMYOU.TTF','STHUPO.TTF','STKAITI.TTF','STLITI.TTF');
 
 
/*用循環(huán)來(lái)將驗(yàn)證碼一個(gè)一個(gè)的寫入圖片中*/
for($i=0;$i<$length;$i++)
{
  $size=mt_rand(14,18);
  $angle=mt_rand(-15,15);
 
  /*驗(yàn)證碼的橫坐標(biāo)與縱坐標(biāo)*/
  $x=5+$i*$size;
  $y=mt_rand(20,26);
 
  $color=imagecolorallocate($image,mt_rand(50,190),mt_rand(50,200),mt_rand(50,90));
  $fontfile="../font/".$fontfiles[mt_rand(0,count($fontfiles)-1)];
  $text=substr($chars,$i,1);
 
  /*本函數(shù)將 TTF (TrueType Fonts) 字型文字寫入圖片*/
 imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
}
if($pixel)
{
for($i=0;$i<50;$i++)
{
  /*本函數(shù)可在圖片上繪出一點(diǎn)。參數(shù) x、y 為欲繪點(diǎn)的坐標(biāo),參數(shù) col 表示該點(diǎn)的顏色*/
  imagesetpixel($image, mt_rand(0,$width-1), mt_rand(0,$height-1), $black);
}}
if($line)
{
  for($i=0;$i<10;$i++)
  {
  $color=imagecolorallocate($image,mt_rand(50,90),mt_rand(50,200),mt_rand(50,90));
  /*畫線段*/
  imageline($image, mt_rand(0,$width-1), mt_rand(0,$height-1), mt_rand(0,$width-1), mt_rand(0,$height-1), $color);
}
}
/*以gif形式輸出*/
header("content-type:image/gif");
/*建立GIF圖 并輸出到網(wǎng)頁(yè)*/
imagegif($image);
/*釋放與 image 關(guān)聯(lián)的內(nèi)存*/
imagedestroy($image);
}

string.func.php

<?php 
 
function buildRandomString($type=1,$length=4){
 
if($type==1)
{
  /*join函數(shù)把數(shù)組轉(zhuǎn)換為字符串。。join() 函數(shù)是 implode() 函數(shù)的別名*/
  $chars=join("",range(0,9));
}elseif ($type==2) {
  /*array_merge函數(shù)合并數(shù)組*/
  $chars=join("",array_merge(range("a","z"),range("A","Z")));
}elseif($type==3)
{
  $chars=join("",array_merge(range("a","z"),range("A","Z"),range(0,9)));
}
 
if($length>strlen($chars))
{
  exit("字符串長(zhǎng)度不夠");
}
/*打亂字符串*/
$chars=str_shuffle($chars);
return substr($chars,0,$length);
 
}
 ?>

相關(guān)文章

  • 如何使用微信公眾平臺(tái)開(kāi)發(fā)模式實(shí)現(xiàn)多客服

    如何使用微信公眾平臺(tái)開(kāi)發(fā)模式實(shí)現(xiàn)多客服

    其實(shí)微信公眾平臺(tái)的多客服功能已經(jīng)出來(lái)好久了,并且一出來(lái)的時(shí)候我就已經(jīng)為自己的公眾號(hào)實(shí)現(xiàn)了,原本以為大家都已經(jīng)會(huì)了,但是今天還是有人問(wèn)起這個(gè)多客服功能怎么使用,我找了下網(wǎng)上也沒(méi)什么好的教程,今天我就給大家發(fā)一篇比較簡(jiǎn)單易懂的教程吧
    2016-01-01
  • PHP中exec函數(shù)和shell_exec函數(shù)的區(qū)別

    PHP中exec函數(shù)和shell_exec函數(shù)的區(qū)別

    這篇文章主要介紹了PHP中exec函數(shù)和shell_exec函數(shù)的區(qū)別,這兩個(gè)函數(shù)是非常危險(xiǎn)的函數(shù),一般情況都是被禁用的,當(dāng)然特殊情況下也會(huì)使用,需要的朋友可以參考下
    2014-08-08
  • thinkPHP實(shí)現(xiàn)MemCache分布式緩存功能

    thinkPHP實(shí)現(xiàn)MemCache分布式緩存功能

    這篇文章主要介紹了thinkPHP實(shí)現(xiàn)MemCache分布式緩存功能的方法,結(jié)合實(shí)例形式分析了thinkPHP通過(guò)修改CacheMemcache.class.php源文件實(shí)現(xiàn)分布式緩存功能的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-03-03
  • Nginx+php配置文件及原理解析

    Nginx+php配置文件及原理解析

    這篇文章主要介紹了Nginx+php配置文件及原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • thinkphp中AJAX返回ajaxReturn()方法分析

    thinkphp中AJAX返回ajaxReturn()方法分析

    這篇文章主要介紹了thinkphp中AJAX返回ajaxReturn()方法,結(jié)合實(shí)例形式分析了thinkPHP中ajax操作的功能、數(shù)據(jù)返回格式以及ajaxReturn方法的簡(jiǎn)單使用技巧,需要的朋友可以參考下
    2016-12-12
  • Yii框架的redis命令使用方法簡(jiǎn)單示例

    Yii框架的redis命令使用方法簡(jiǎn)單示例

    這篇文章主要介紹了Yii框架的redis命令使用方法,結(jié)合簡(jiǎn)單實(shí)例形式分析了Yii框架redis命令相關(guān)的過(guò)期時(shí)間設(shè)置、數(shù)據(jù)存儲(chǔ)、添加、刪除、輸出等操作技巧,需要的朋友可以參考下
    2019-10-10
  • 兩種php給圖片加水印的實(shí)現(xiàn)代碼

    兩種php給圖片加水印的實(shí)現(xiàn)代碼

    本文提供了兩種php給圖片加水印的實(shí)現(xiàn)代碼,其中一種是添加文字水印,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-07-07
  • CodeIgniter針對(duì)lighttpd服務(wù)器URL重寫的方法

    CodeIgniter針對(duì)lighttpd服務(wù)器URL重寫的方法

    這篇文章主要介紹了CodeIgniter針對(duì)lighttpd服務(wù)器URL重寫的方法,涉及l(fā)ighttpd服務(wù)器配置及URL配置規(guī)則的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • TP5框架model常見(jiàn)操作示例小結(jié)【增刪改查、聚合、時(shí)間戳、軟刪除等】

    TP5框架model常見(jiàn)操作示例小結(jié)【增刪改查、聚合、時(shí)間戳、軟刪除等】

    這篇文章主要介紹了TP5框架model常見(jiàn)操作,結(jié)合實(shí)例形式總結(jié)分析了thinkPHP5框架增刪改查、聚合、獲取器、修改器、時(shí)間戳、軟刪除等常見(jiàn)操作技巧,需要的朋友可以參考下
    2020-04-04
  • php判斷手機(jī)瀏覽還是web瀏覽,并執(zhí)行相應(yīng)的動(dòng)作簡(jiǎn)單實(shí)例

    php判斷手機(jī)瀏覽還是web瀏覽,并執(zhí)行相應(yīng)的動(dòng)作簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇php判斷手機(jī)瀏覽還是web瀏覽,并執(zhí)行相應(yīng)的動(dòng)作簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給的大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07

最新評(píng)論

胶南市| 太保市| 博罗县| 阿图什市| 乐都县| 交城县| 剑川县| 车险| 营口市| 南汇区| 全南县| 沂南县| 海原县| 怀柔区| 噶尔县| 陈巴尔虎旗| 扎囊县| 康马县| 广饶县| 略阳县| 宜昌市| 张家港市| 稷山县| 洪雅县| 桓台县| 巩义市| 塔城市| 三门峡市| 外汇| 安徽省| 陆丰市| 古浪县| 辽宁省| 上饶县| 荥经县| 昭通市| 永寿县| 丰都县| 望谟县| 长葛市| 鄄城县|