国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > PHP > 正文

生成隨機(jī)字符串和驗(yàn)證碼的類(lèi)的PHP實(shí)例

2024-09-04 11:46:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

網(wǎng)上有很多的php隨機(jī)數(shù)與驗(yàn)證碼的代碼與文章,真正適用的沒(méi)有幾個(gè)。

索性自己搞一個(gè)吧。

開(kāi)始本節(jié)的php教程 吧,以下代碼的實(shí)現(xiàn),主要做到可以很好區(qū)分一個(gè)get_code(),另一個(gè)create_check_image(),輸出圖像直接調(diào)用后面的,session()取驗(yàn)證碼時(shí)直接get_code()就ok,順帶提下使用session時(shí)必須將session_star()放在最前面。

代碼如下:

  1. <?php 
  2. class RandCheckCode 
  3.         /*函數(shù)名稱(chēng):get_code() 
  4.         *作用:取得隨機(jī)字符串 
  5.         * 參數(shù): 
  6.         1、(int)$length = 32 #隨機(jī)字符長(zhǎng)度 
  7.         2、(int)$mode = 0    #隨機(jī)字符類(lèi)型, 
  8.         0為大小寫(xiě)英文和數(shù)字,1為數(shù)字,2為小寫(xiě)字母,3為大寫(xiě)字母, 
  9.         4為大小寫(xiě)字母,5為大寫(xiě)字母和數(shù)字,6為小寫(xiě)字母和數(shù)字 
  10.         *返回:取得的字符串 
  11.         */ 
  12.         function get_code($length=32,$mode=0)//獲取隨機(jī)驗(yàn)證碼函數(shù) 
  13.         { 
  14.                 switch ($mode
  15.                 { 
  16.                         case '1'
  17.                                 $str='123456789'
  18.                                 break
  19.                         case '2'
  20.                                 $str='abcdefghijklmnopqrstuvwxyz'
  21.                                 break
  22.                         case '3'
  23.                                 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  24.                                 break
  25.                         case '4'
  26.                                 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
  27.                                 break
  28.                         case '5'
  29.                                 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
  30.                                 break
  31.                         case '6'
  32.                                 $str='abcdefghijklmnopqrstuvwxyz1234567890'
  33.                                 break
  34.                         default
  35.                                 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
  36.                                 break
  37.                 } 
  38.                 $checkstr=''
  39.                 $len=strlen($str)-1; 
  40.                 for ($i=0;$i<$length;$i++) 
  41.                 { 
  42.                         //$num=rand(0,$len);//產(chǎn)生一個(gè)0到$len之間的隨機(jī)數(shù) 
  43.                         $num=mt_rand(0,$len);//產(chǎn)生一個(gè)0到$len之間的隨機(jī)數(shù) 
  44.                         $checkstr.=$str[$num]; 
  45.  
  46.                         
  47.                 } 
  48.                 return $checkstr
  49.         } 
  50.  
  51. /**     函數(shù)名稱(chēng):create_check_image() 
  52.         函數(shù)作用:產(chǎn)生一個(gè)校驗(yàn)碼的圖片 
  53.         參    數(shù):$checkcode:校驗(yàn)碼字符串 
  54.         返 回 值:返回該圖片 
  55. */ 
  56.         function create_check_image($checkcode)//產(chǎn)生一個(gè) 
  57.         { 
  58.                 $im=imagecreate(65,22);//產(chǎn)生一個(gè)圖片 
  59.                 $black=imagecolorallocate($im,0,0,0);//背景顏色 
  60.                 $white=imagecolorallocate($im,255,255,255);//前景顏色 
  61.                 $gray=imagecolorallocate($im,200,200,200); 
  62.                 imagefill($im,30,30,$gray);//在$im圖像的坐標(biāo)30,30(圖像左上角為0,0)處用$gray 顏色執(zhí)行區(qū)域填充(即與30,30點(diǎn)顏色相同且相鄰的點(diǎn)都會(huì)被填充) 
  63.  
  64.                 imagestring($im,5,8,3,$checkcode,$white);//用$white顏色將字符串$checkcode畫(huà)到$im 所代表的圖像的8,3坐標(biāo)處(這是字符串左上角坐標(biāo),整幅圖像的左上角為0,0),5是字體大小, 字體只能是1,2,3,4或5,使用內(nèi)置字體 
  65.                 for ($i=0;$i<120;$i++) 
  66.                 { 
  67.                         $randcolor=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255)); 
  68.                         imagesetpixel($im,rand()%70,rand()%30,$randcolor);//在$im圖象上用$randcolor顏色在(rand()%70,rand()%30)坐標(biāo)(圖像左上角為0,0)上畫(huà)一個(gè)點(diǎn) 
  69.                 } 
  70.                 header("Content-type:image/png"); 
  71.                 imagepng($im);//以PNG格式將圖像輸出到瀏覽器或文件 
  72.                 imagedestroy($im);//銷(xiāo)毀圖像$im 
  73.         } //Vevb.com 
  74. /* 
  75. $randcode=new RandCheckCode(); 
  76. $checkstring=$randcode->get_code(5,7); 
  77. $image=$randcode->create_check_image($checkstring); 
  78. echo $image; 
  79. */ 
  80.  
  81. ?> 

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 枞阳县| 玉林市| 江孜县| 漳平市| 阿合奇县| 托克托县| 偃师市| 右玉县| 个旧市| 司法| 黄石市| 临湘市| 榆树市| 始兴县| 独山县| 金阳县| 舒城县| 修水县| 琼中| 济阳县| 息烽县| 安溪县| 邵东县| 同仁县| 海淀区| 西乌| 白城市| 炎陵县| 阿尔山市| 沁阳市| 东平县| 峨眉山市| 绥滨县| 曲松县| 镇平县| 石景山区| 融水| 阿鲁科尔沁旗| 庆安县| 长葛市| 霍邱县|