- //---------------- ---------------------
- // 인증코드 클래스, 이 클래스의 객체는 인증코드 이미지를 동적으로 획득할 수 있으며, 인증코드 문자는 SESSION['code']
- //------------에 저장됩니다. -------- ---------------- -------- --
- //숫자, 영문, 한자 혼합 4가지 형식 지원
- //------ ------------- ----------- -----
- // @작성자: HelloChina(sanzi0930@163.com)
- // ------------------------ ---------------- ----------------------------------
- // @날짜: 2012년 6월 7일 11:03:00
- // ---------------------------- ------ ------------------ ---
- // @version 1.0
- // ------ --------------- ---------------------- ---
- Vcode 클래스{
- protected $width; //인증 코드 너비
- protected $height; //인증 코드 길이
- protected $codeNum; //인증 코드 문자 수
- protected $codeType; protected $fontSize; //문자 크기
- protected $codeStr; //중국어 내용
- protected $imageType; 출력 이미지 유형
- protected $image; //이미지 리소스
- protected $checkCode; //인증 코드 내용
- /**
- ---------------------------------- ---------------------
- * 인증코드 정보 받기
- ----- - ------------------------------------------------- - -------------
- * @param 정수 $width 인증 코드 너비
- * @param 정수 $height 인증 코드 height
- * @param 정수 $codeNum 인증코드 문자 개수
- * @param 정수 $codeType 인증코드 문자 종류 1은 숫자 2는 문자 3은 한자 4는 혼합
- * @param 정수 $fontSize 인증코드 글꼴 크기
- * @param string $fontType 인증코드 글꼴 유형
- * @param string $imageType 인증코드 출력 이미지 유형
- * @param string $codestr 중국어 인증코드 내용
- - ---- --------------------------------- ---- -------------
- */
- public function __construct($width=100, $ height=50, $codeNum=4, $codeType=4, $fontSize=12, $fontType ='heiti.ttf' ,$imageType='jpeg', $codeStr='배고픈 사람에게 가세요. 그는 납작해요, 예 , 잘 날아요. 생각만 하고 있어요.'){
- $this- >width = $width;
- $this->height = $height;
- $this ->codeNum = $codeNum;
- $this->codeType = $codeType;
- $ this->fontSize = $fontSize;
- $this->fontType = $fontType;
- $this->codeStr = $codeStr;
- $this->strNum = strlen($this- >codeStr)/3-1;
- $this->imageType = $imageType;
- $this->checkCode = $this->getCheckCode();
- }
-
- // --------- --------------- --------- ------------
- //* 인증 코드 문자 생성
- // -- -------- ----------------------------- -------- -------
- //* @return string
- // -------- -------- ----------------------------- -------- --
- 공용 함수 __toString(){
- $string = implode('', $this->getCheckCode() );
- $_SESSION["code"]=$string; session
- $this->getImage(); //인증코드 출력
- return '';
- }
- protected function getCheckCode(){
- $string = array(); > switch($this->codeType){
- 사례 1:
- //숫자 문자열
- $ string = array_rand(range(0,9), $this->codeNum);
- break;
- 사례 2:
- //대문자 문자열
- $string = array_rand(array_flip(range ('A', 'Z')), $this->codeNum);
- break ;
- 사례 3:
- //한자 문자열
-
- for($i=0 ; $i<($this->codeNum); $i ){
- $start = mt_rand(0, $this->strNum);
- $string[$i]= self::msubstr( $this->codeStr,$start);
- }
- break;
- 사례 4:
- //혼합 문자열
- for($i=0; $i<($this->codeNum); $i ){
- $rand = mt_rand(0,2);
- 스위치($rand){
- 사례 0:
- $ascii = mt_rand(48,57);
- $string[$i] = sprintf('% c ',$ascii);
- break;
코드 복사
|