PHP實(shí)現(xiàn)適用于自定義的驗(yàn)證碼類(lèi)
來(lái)源:易賢網(wǎng) 閱讀:604 次 日期:2016-08-17 14:40:51
溫馨提示:易賢網(wǎng)小編為您整理了“PHP實(shí)現(xiàn)適用于自定義的驗(yàn)證碼類(lèi)”,方便廣大網(wǎng)友查閱!

本文實(shí)例為大家分享了PHP驗(yàn)證碼類(lèi),利用對(duì)象來(lái)實(shí)現(xiàn)的驗(yàn)證碼類(lèi),供大家參考,具體內(nèi)容如下

<?php

/* 

 * To change this license header, choose License Headers in Project Properties.

 * To change this template file, choose Tools | Templates

 * and open the template in the editor.

 */

Class Image{

 private $img;

 public $width = 85;

 public $height = 25;

 public $code;

 public $code_len = 4;

 public $code_str = "329832983DSDSKDSLKQWEWQ2lkfDSFSDjfdsfdsjwlkfj93290KFDSKJFDSOIDSLK";

 public $bg_color = '#DCDCDC';

 public $font_size = 16;

 public $font = 'font.ttf';

 public $font_color = '#000000';

 //創(chuàng)建驗(yàn)證碼餓字符創(chuàng)

 public function create_code(){

  $code = '';

  for( $i=0;$i<$this->code_len;$i++ ){

   $code .= $this->code_str[mt_rand(0, strlen($this->code_str)-1)];

 }

  return $this->code = $code;

 }

 //輸出圖像

 public function getImage(){

  $w = $this->width;

  $h = $this->height;

  $bg_color = $this->bg_color;

  $img = imagecreatetruecolor($w, $h);

  $bg_color = imagecolorallocate($img, 

 hexdec(substr($bg_color, 1,2)), hexdec(substr($bg_color, 3,2)), hexdec(substr($bg_color, 5,2)));

 imagefill($img, 0, 0, $bg_color);

  $this->img = $img;

  $this->create_font();

  $this->create_pix();

 $this->show_code();

 }

 //寫(xiě)入驗(yàn)證碼

 public function create_font(){

  $this->create_code();

  $color = $this->font_color;

  $font_color = imagecolorallocate($this->img, hexdec(substr($color,1,2)), hexdec(substr($color, 3,2)), hexdec(substr($color,5,2)));

  $x = $this->width/$this->code_len;

  for( $i=0;$i<$this->code_len;$i++ ){

   $txt_color = imagecolorallocate($this->img, mt_rand(0,100), mt_rand(0, 150), mt_rand(0, 200));

   imagettftext($this->img, $this->font_size, mt_rand(-30, 30), $x*$i+mt_rand(3, 6), mt_rand($this->height/1.2, $this->height), $txt_color, $this->font , $this->code[$i]); 

   //imagestring($this->img, $this->font_size, $x*$i+mt_rand(3, 6),mt_rand(0, $this->height/4) , $this->code[$i], $font_color);

  }

  $this->font_color = $font_color;

 }

 //畫(huà)干擾線(xiàn)

 public function create_pix(){

  $pix_color= $this->font_color;

  for($i=0;$i<100;$i++){

   imagesetpixel($this->img, mt_rand(0, $this->width),mt_rand(0, $this->height), $pix_color);

  }

  for($j=0;$j<4;$j++){

   imagesetthickness($this->img, mt_rand(1, 2));

   imageline($this->img, mt_rand(0, $this->width), mt_rand(0, $this->height), mt_rand(0, $this->width), mt_rand(0, $this->height), $pix_color);

  }

 }

 //得到驗(yàn)證碼

 public function getCode(){

  return strtoupper($this->code);

 }

 //輸出驗(yàn)證碼

 private function show_code(){

  header("Content-type:image/png");

  imagepng($this->img);

  imagedestroy($this->img);

 }

}

以上就是使用對(duì)象編寫(xiě)的驗(yàn)證碼類(lèi)的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)PHP程序設(shè)計(jì)有所幫助。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:PHP實(shí)現(xiàn)適用于自定義的驗(yàn)證碼類(lèi)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話(huà):0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)