利用CI框架做一个随机的验证码识别

在CI的中文手册上,有一些有关于验证码识别的代码和原理讲解,下面废话不多说,直接上代码。

	public function __construct()
{
	//切记在控制器的构造函数中一定先继承父类控制器的构造函数
	   parent::__construct();$this->load->helper('captcha');
}
	public function test_gd(){
		$vals = array(
				'word'          => rand(100000,999999)  ,        //验证码上显示的字符,可以写成函数,例如:rand(100000,999999)
				'img_path'      => 'data/captcha/',    //验证码保存路径
				'img_url'       => '../../data/captcha', //验证码图片url
				'font_path'     => './path/to/fonts/texb.ttf',   //验证码上字体
				'img_width'     => '150',        //验证码图片宽度
				'img_height'    => 30,           //验证码图片高度
				'expiration'    => 7200,         //验证码图片删除时间
				'word_length'   => 8,            //验证码长度
				'font_size'     => 16,           //验证码字体大小
				'img_id'        => 'Imageid',
				'pool'          => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
				'colors'        => array(
						'background' => array(255, 255, 255),
						'border' => array(255, 255, 255),
						'text' => array(0, 0, 0),
						'grid' => array(255, 40, 40)
				)
        );

		$cap = create_captcha($vals);
		echo($cap['image']);
		
	}

这种方式的缺点是,所有生成的验证码的图片都会存放在同一个文件夹里。如果访问量比较大的话,会造成内存占用量比较大的问题。网上有很多解决这种问题的方式。可以参考着改进一下。如果我有时间的话,我会写一个放在博客上。


还有一种生成验证码的比较好的方式。就是用php写一个画板,画板不变,变的是生成的随机的数字,这种方式也是大多数人所用到的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值