- // +-------------------------------------- -- ----------------------------------
- // 検証コードクラス、このクラスのオブジェクトは動的に取得可能認証コード 写真と認証コードの文字は SESSION['code'] に保存されます
- // +---------------------------- -- --------------------------------------
- //4 つの形式の数値をサポート、文字と漢字のミックス
- // +----------------------------------------------------- -------- ------------------------
- // @著者: HelloChina(sanzi0930@163.com)
- / / +----- -------------------------------------- ------- ------------------
- // @日付: 2012 年 6 月 7 日 11:03:00
- // +------ ---------------------------------------------------- -------- ----------
- // @バージョン 1.0
- // +---------------------- ---------------------------------------------------- -
- class Vcode{
- protected $ width; // 検証コードの長さ
- protected $codeNum; // 検証コードの文字数
- protected $codeType; // 検証コードの種類
- ; $fontSize; //文字サイズ
- protected $fontType; //フォントタイプ
- protected $strNum; //出力画像タイプ
- / /画像リソース
- protected $checkCode; //検証コードの内容
- /**
- +------------------------------------------------ --------------------------------
- * 認証コード情報を取得する
- +---------- -------------------------------------------------- --------------------
- * @param integer $width 検証コードの幅
- * @param integer $height 検証コードの高さ
- * @param integer $codeNum 検証コードの文字Number
- * @param integer $codeType 認証コードの文字種 1は数字 2は文字 3は漢字 4は混在
- * @param integer $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
- //+------------------------------------- ----------------------------------------------------
- public function __toString(){
- $string = implode( '', $this->getCheckCode());
- $_SESSION["code"]=$string; //セッションに追加
- $this->getImage( ); //出力検証コード
- return '' ;
- }
- protected function getCheckCode(){
- $string = array(){
- case 1:
- //数値文字列
- $string = array_rand(range(0,9 ), $this->codeNum);
- Break;
- case 2:
- //大きな文字列
- $string = array_rand(array_flip(range('A', 'Z' )), $this->codeNum );
- Break;
- case 3:
- //中国語文字列
-
- for($i=0; $i<($this->codeNum); $i++){
- $start = mt_rand(0, $this ->strNum);
- $string[$i]= self::msubstr($this->codeStr,$start);
- }
- Break;
- case 4:
- //混合文字列
- for($i=0; $i<($this->codeNum); $i++){
- $rand=mt_rand(0,2);
- switch ( $rand){
- case 0:
- $ascii = mt_rand(48,57);
- $string[$i] = sprintf('%c',$ascii);
- Break;
コードをコピー
|
検証コード、PHP
このトピックは、2015-11-18 08:23 に Xiaobei によって移動されました