當前位置:才華齋>計算機>php語言>

仿照TP框架自帶的PHP驗證碼類

php語言 閱讀(1.51W)
仿照TP框架自帶的PHP驗證碼類
  以下本站小編整理的.仿照TP框架自帶的PHP驗證碼類,大家自己匯入字型,可以按照自己的額需要隨便修改。,更多資訊請關注應屆畢業生網!  <?php  class Imagecode{  private $width ;  private $height;  private $counts;  private $distrubcode;  private $fonturl;  private $session;  function __construct($width = 120,$height = 30,$counts = 5,$distrubcode="1235467890qwertyuipkjhgfdaszxcvbnm",$fonturl="C:WindowsFonts"){  $this->width=$width;  $this->height=$height;  $this->counts=$counts;  $this->distrubcode=$distrubcode;  $this->fonturl=$fonturl;  $this->session=$this->sessioncode();  session_start();  $_SESSION['code']=$this->session;  }  function imageout(){  $im=$this->createimagesource();  $this->setbackgroundcolor($im);  $this->set_code($im);  $this->setdistrubecode($im);  ImageGIF($im);  ImageDestroy($im);  }  private function createimagesource(){  return imagecreate($this->width,$this->height);  }  private function setbackgroundcolor($im){  $bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255),rand(200,255));//±??°????  imagefill($im,0,0,$bgcolor);  }  private function setdistrubecode($im){  $count_h=$this->height;  $cou=floor($count_h*2);  for($i=0;$i<$cou;$i++){  $x=rand(0,$this->width);  $y=rand(0,$this->height);  $jiaodu=rand(0,360);  $fontsize=rand(8,15);  $fonturl=$this->fonturl;  $originalcode = $this->distrubcode;  $countdistrub = strlen($originalcode);  $dscode = $originalcode[rand(0,$countdistrub-1)];  $color = ImageColorAllocate($im, rand(40,140),rand(40,140),rand(40,140));  imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);  }  }  private function set_code($im){  $width=$this->width;  $counts=$this->counts;  $height=$this->height;  $scode=$this->session;  $y=floor($height/2)+floor($height/4);  $fontsize=rand(30,35);  $fonturl="C:WindowsFonts";//$this->fonturl;  $counts=$this->counts;  for($i=0;$i<$counts;$i++){  $char=$scode[$i];  $x=floor($width/$counts)*$i+8;  $jiaodu=rand(-20,30);  $color = ImageColorAllocate($im,rand(0,50),rand(50,100),rand(100,140));  imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$char);  }  }  private function sessioncode(){  $originalcode = $this->distrubcode;  $countdistrub = strlen($originalcode);  $_dscode = "";  $counts=$this->counts;  for($j=0;$j<$counts;$j++){  $dscode = $originalcode[rand(0,$countdistrub-1)];  $_dscode.=$dscode;  }  return $_dscode;  }  }  Header("Content-type: image/GIF");  $imagecode=new Imagecode(160,50);  $imagecode->imageout();