當前位置: 首頁>>代碼示例>>PHP>>正文


PHP captcha::_image方法代碼示例

本文整理匯總了PHP中captcha::_image方法的典型用法代碼示例。如果您正苦於以下問題:PHP captcha::_image方法的具體用法?PHP captcha::_image怎麽用?PHP captcha::_image使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在captcha的用法示例。


在下文中一共展示了captcha::_image方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: entry

 /**
  * 輸出驗證碼並把驗證碼的值保存的session中
  * 驗證碼保存到session的格式為: $_SESSION[self::$seKey] = array('code' => '驗證碼值', 'time' => '驗證碼創建時間');
  */
 public static function entry($id = '')
 {
     // 圖片寬(px)
     self::$imageL || (self::$imageL = self::$length * self::$fontSize * 1.5 + self::$fontSize * 1.5);
     // 圖片高(px)
     self::$imageH || (self::$imageH = self::$fontSize * 2);
     // 建立一幅 self::$imageL x self::$imageH 的圖像
     self::$_image = imagecreate(self::$imageL, self::$imageH);
     // 設置背景
     imagecolorallocate(self::$_image, self::$bg[0], self::$bg[1], self::$bg[2]);
     // 驗證碼字體隨機顏色
     self::$_color = imagecolorallocate(self::$_image, mt_rand(1, 120), mt_rand(1, 120), mt_rand(1, 120));
     // 驗證碼使用隨機字體
     $ttfPath = dirname(__FILE__) . '/captcha/' . (self::$useZh ? 'zhttfs' : 'ttfs') . '/';
     $dir = dir($ttfPath);
     $ttfs = array();
     while (false !== ($file = $dir->read())) {
         if ($file[0] != '.' && substr($file, -4) == '.ttf') {
             $ttfs[] = $ttfPath . $file;
         }
     }
     $dir->close();
     // print_r($ttfs);
     // exit;
     $ttf = $ttfs[array_rand($ttfs)];
     if (self::$useImgBg) {
         self::_background();
     }
     if (self::$useNoise) {
         // 繪雜點
         self::_writeNoise();
     }
     if (self::$useCurve) {
         // 繪幹擾線
         self::_writeCurve();
     }
     // 繪驗證碼
     $code = array();
     // 驗證碼
     $codeNX = 0;
     // 驗證碼第N個字符的左邊距
     for ($i = 0; $i < self::$length; $i++) {
         if (self::$useZh) {
             $code[$i] = chr(mt_rand(0xb0, 0xf7)) . chr(mt_rand(0xa1, 0xfe));
         } else {
             $code[$i] = self::$_codeSet[mt_rand(0, 8)];
             $codeNX += mt_rand(self::$fontSize * 1.2, self::$fontSize * 1.6);
             // 寫一個驗證碼字符
             self::$useZh || imagettftext(self::$_image, self::$fontSize, mt_rand(-40, 40), $codeNX, self::$fontSize * 1.5, self::$_color, $ttf, $code[$i]);
         }
     }
     // 保存驗證碼
     isset($_SESSION) || session_start();
     if ($id) {
         $_SESSION[self::$seKey][$id]['code'] = join('', $code);
         // 把校驗碼保存到session
         $_SESSION[self::$seKey][$id]['time'] = time();
         // 驗證碼創建時間
     } else {
         $_SESSION[self::$seKey]['code'] = join('', $code);
         // 把校驗碼保存到session
         $_SESSION[self::$seKey]['time'] = time();
         // 驗證碼創建時間
     }
     self::$useZh && imagettftext(self::$_image, self::$fontSize, 0, (self::$imageL - self::$fontSize * self::$length * 1.2) / 3, self::$fontSize * 1.5, self::$_color, $ttf, iconv("GB2312", "UTF-8", join('', $code)));
     header('Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate');
     header('Cache-Control: post-check=0, pre-check=0', false);
     header('Pragma: no-cache');
     header("content-type: image/png");
     // 輸出圖像
     imagepng(self::$_image);
     imagedestroy(self::$_image);
 }
開發者ID:cygsxak,項目名稱:share_code,代碼行數:77,代碼來源:class.captcha.php


注:本文中的captcha::_image方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。