PHP 生成英文单词验证码程序代码

具体

 代码如下 复制代码

$width=145;
$height = 45;
        
$authcode = vcaptcha_read_code('words.txt') ;
        
$bg = 'bg/captcha_bg3.jpg';
        
$img_type   = 'png';
        
/* 验证码长度 */
$letters = strlen($authcode);
        
$img_bg    = (function_exists('imagecreatefromjpeg') && ((imagetypes() & IMG_JPG) > 0)) ?
                imagecreatefromjpeg($bg) : imagecreatefromgif($bg);
$bg_width  = imagesx($img_bg);
$bg_height = imagesy($img_bg);
        
$img_org   = ((function_exists('imagecreatetruecolor')) && PHP_VERSION >= '4.3') ?
              imagecreatetruecolor($width, $height) : imagecreate($width, $height);
        
/* 将背景图象复制原始图象并调整大小 */
if (function_exists('imagecopyresampled') && PHP_VERSION >= '4.3') // GD 2.x
{
    imagecopyresampled($img_org, $img_bg, 0, 0, 0, 0, $width, $height, $bg_width, $bg_height);
}
else // GD 1.x
{
    imagecopyresized($img_org, $img_bg, 0, 0, 0, 0, $width, $height, $bg_width, $bg_height);
}
imagedestroy($img_bg);
        
$clr = imagecolorallocate($img_org, 255, 255, 255);
        
/* 绘制边框 */
imagerectangle($img_org, 0, 0, $width - 1, $height - 1, $clr);
        
/* 获得验证码的高度和宽度 */
$x = ($width - (imagefontwidth(5) * $letters)) / 2;
$y = ($height - imagefontheight(5)) / 2;
imagestring($img_org, 5, $x, $y, $authcode, $clr);
        
header('Expires: Thu, 01 Jan 1970 00:00:00 GMT');
        
// HTTP/1.1
header('Cache-Control: private, no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0, max-age=0', false);
        
// HTTP/1.0
header('Pragma: no-cache');
if ($img_type == 'jpeg' && function_exists('imagecreatefromjpeg'))
{
    header('Content-type: image/jpeg');
    imageinterlace($img_org, 1);
    imagejpeg($img_org, false, 95);
}
else
{
    header('Content-type: image/png');
    imagepng($img_org);
}
        
imagedestroy($img_org);
        
function vcaptcha_read_code($wordlist_file)
{
    $fp = @fopen($wordlist_file, 'rb');
    if (!$fp) return false;
        
    $fsize = filesize($wordlist_file);
    if ($fsize < 32) return false; // too small of a list to be effective
        
    if ($fsize < 128) {
        $max = $fsize; // still pretty small but changes the range of seeking
    } else {
        $max = 128;
    }
        
    fseek($fp, rand(0, $fsize - $max), SEEK_SET);
    $data = fread($fp, 128); // read a random 128 bytes from file
    fclose($fp);
    $data = preg_replace("/r?n/", "n", $data);
        
    $start = strpos($data, "n", rand(0, 100)) + 1; // random start position
    $end   = strpos($data, "n", $start);           // find end of word
        
    return strtolower(substr($data, $start, $end - $start)); // return substring in 128 bytes
}

使用方法:

 代码如下 复制代码

<img id="captcha_img" title="PHP脚本生成单词验证码" alt="PHP脚本生成单词验证码"  src="http://www.111cn.net" onClick="clickImg()"/>

将这段代码复制到HTML里,就可以了。还有这个的getCode函数是为了让用户看不清验证码,点击可以切换,JavaScript脚本如下:

<script type="text/javascript">
function clickImg()
{
  var imgCode ="http://www.111cn.net/ "+Math.random();
  document.getElementById("captcha_img").setAttribute('src',imgCode);
}
</script>

http://file.111cn.net/upload/mbdown/pic/2013/06/26/13659538282901.txt  这是单词库大家可下载。

时间: 2024-12-31 21:38:23

PHP 生成英文单词验证码程序代码的相关文章

php生成雪花背景验证码程序代码

验证码生成程序  代码如下 复制代码 <?php session_start(); session_register("login_check_number"); //昨晚看到了chianren上的验证码效果,就考虑了一下,用PHP的GD库完成了类似功能 //先成生背景,再把生成的验证码放上去 $img_height=120;    //先定义图片的长.宽 $img_width=40; if($HTTP_GET_VARS["act"]== "init

asp.net(C#) 生成随机验证码的代码_实用技巧

常用的生成验证码程序 ,图片效果如下:    源程序如下: 复制代码 代码如下: using System;  using System.IO;  using System.Drawing;  using System.Drawing.Imaging;  using System.Text;  using System.Collections;  using System.Web;  using System.Web.UI;  using System.Web.UI.WebControls; 

php 中文与英文验证码程序代码

//英文验证码相对简单,不要作hex处理,直接用色彩值就OK了.如果 session_start(); function rand_create() {     //通知浏览器将要输出PNG图片     Header("Content-type: image/PNG");     //准备好随机数发生器种子      srand((double)microtime()*1000000);     //准备图片的相关参数       $im = imagecreate(62,22);  

完美的php生成验证码程序代码

•新建一个PHP文件captcha_code_file.php  代码如下 复制代码 //首先开启session session_start(); //定义前台显示验证码长&宽 $image_width = 120; $image_height = 40; $characters_on_image = 6; $font = './monofont.ttf'; //The characters that can be used in the CAPTCHA code. //avoid confus

asp 生成验证码程序代码

<% Option Explicit Response.buffer = True NumCode (8)   '注:1,4,7,10,13,16为彩色背景型 2,5,8,11,14,17为黑白型 3,6,9,12,15,18为噪点型 Function NumCode(CodeType)     Response.Expires = -1     Response.AddHeader "Pragma", "no-cache"     Response.AddH

JSP生成彩色验证码程序

js|程序|验证码 生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)  产生验证码图片的文件image.jsp <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %><%!Color getRandColor(int fc,int bc){/

PHP生成随机字符串程序代码

利用for循环把我们定义好的字符遍历即可  代码如下 复制代码 <?php /* Generate Password * Length : 8 */ $str = "0123456789abcdefghijklmnopqrstuvwxyz";   //   输出字符集 $n = 8;   //   输出串长度 $len = strlen($str)-1; for($i=0 ; $i<$n; $i++){ $s .=  $str[rand(0,$len)]; } echo $

一个简单php验证码程序代码

验证码识别一般分为以下几个步骤: 1. 取出字模 2. 二值化 3. 计算特征 4. 对照样本  代码如下 复制代码 function _code($_code_length = 4, $_width = 75, $_height = 25){     for($i=0;$i<$_code_length;$i++){         $_nmsg .= dechex(mt_rand(0,15));     }     $_SESSION["code"] = $_nmsg;    

利用iOS绘制图片生成随机验证码示例代码_IOS

先来看看效果图 实现方法 .h文件 @property (nonatomic, retain) NSArray *changeArray; @property (nonatomic, retain) NSMutableString *changeString; @property (nonatomic, retain) UILabel *codeLabel; -(void)changeCode; @end .m文件 @synthesize changeArray = _changeArray;