100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 12306验证码 支持中文字母数字 自定义字体php验证码代码

12306验证码 支持中文字母数字 自定义字体php验证码代码

时间:2023-09-23 04:23:06

相关推荐

12306验证码 支持中文字母数字 自定义字体php验证码代码

后端开发|php教程

12306验证码

后端开发-php教程

复制代码 代码如下:

新闻站源码,vscode终端太混乱,ubuntu启动nmap,tomcat服务在哪开启,爬虫 wps,php html 教程,奎文seo优化服务,网站源码手机版,自带后台的asp模板lzw

<?php

/*

* Captcha Class base on PHP GD Lib

* @author Design

* @version 1.0

* @demo

* include(‘captchaClass.php’);

* $captchaDemo=new Captcha();

* $captchaDemo->createImage();

*/

class Captcha{

//@定义验证码图片高度

private $height;

//@定义验证码图片宽度

private $width;

//@定义验证码字符个数

private $textNum;

//@定义验证码字符内容

private $textContent;

//@定义字符颜色

private $fontColor;

//@定义随机出的文字颜色

private $randFontColor;

//@定义字体大小

private $fontSize;

//@定义字体

private $fontFamily;

//@定义背景颜色

private $bgColor;

//@定义随机出的背景颜色

private $randBgColor;

//@定义字符语言

private $textLang;

//@定义干扰点数量

private $noisePoint;

//@定义干扰线数量

private $noiseLine;

//@定义是否扭曲

private $distortion;

//@定义扭曲图片源

private $distortionImage;

//@定义是否有边框

private $showBorder;

//@定义验证码图片源

private $image;

//@Constructor 构造函数

public function Captcha(){

$this->textNum=4;

$this->f

$this->f//设置中文字体,可以改成linux的目录

$this->textLang=’en’;

$this->noisePoint=30;

$this->noiseLine=3;

$this->distortion=false;

$this->showBorder=false;

}

//@设置图片宽度

public function setWidth($w){

$this->width=$w;

}

//@设置图片高度

public function setHeight($h){

$this->height=$h;

}

//@设置字符个数

public function setTextNumber($textN){

$this->textNum=$textN;

}

//@设置字符颜色

public function setFontColor($fc){

$this->f

}

//@设置字号

public function setFontSize($n){

$this->f

}

//@设置字体

public function setFontFamily($ffUrl){

$this->f

}

//@设置字符语言

public function setTextLang($lang){

$this->textLang=$lang;

}

//@设置图片背景

public function setBgColor($bc){

$this->bgColor=sscanf($bc,’#%2x%2x%2x’);

}

//@设置干扰点数量

public function setNoisePoint($n){

$this->noisePoint=$n;

}

//@设置干扰线数量

public function setNoiseLine($n){

$this->noiseLine=$n;

}

//@设置是否扭曲

public function setDistortion($b){

$this->distortion=$b;

}

//@设置是否显示边框

public function setShowBorder($border){

$this->showBorder=$border;

}

//@初始化验证码图片

public function initImage(){

if(empty($this->width)){$this->width=floor($this->fontSize*1.3)*$this->textNum+10;}

if(empty($this->height)){$this->height=$this->fontSize*2;}

$this->image=imagecreatetruecolor($this->width,$this->height);

if(empty($this->bgColor)){

$this->randBgColor=imagecolorallocate($this->image,mt_rand(100,255),mt_rand(100,255),mt_rand(100,255));

}else{

$this->randBgColor=imagecolorallocate($this->image,$this->bgColor[0],$this->bgColor[1],$this->bgColor[2]);

}

imagefill($this->image,0,0,$this->randBgColor);

}

//@产生随机字符

public function randText($type){

$string=”;

switch($type){

case ‘en’:

$str=’ABCDEFGHJKLMNPQRSTUVWXY3456789′;

for($i=0;$itextNum;$i++){

$string=$string.’,’.$str[mt_rand(0,29)];

}

break;

case ‘cn’:

for($i=0;$itextNum;$i++) {

$string=$string.’,’.chr(rand(0xB0,0xCC)).chr(rand(0xA1,0xBB));

}

$string=iconv(‘GB2312′,’UTF-8’,$string); //转换编码到utf8

break;

}

return substr($string,1);

}

//@输出文字到验证码

public function createText(){

$textArray=explode(‘,’,$this->randText($this->textLang));

$this->textC

if(empty($this->fontColor)){

$this->randF

}else{

$this->randF

}

for($i=0;$itextNum;$i++){

$angle=mt_rand(-1,1)*mt_rand(1,20);

imagettftext($this->image,$this->fontSize,$angle,5+$i*floor($this->fontSize*1.3),floor($this->height*0.75),$this->randFontColor,$this->fontFamily,$textArray[$i]);

}

}

//@生成干扰点

public function createNoisePoint(){

for($i=0;$inoisePoint;$i++){

$pointColor=imagecolorallocate($this->image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));

imagesetpixel($this->image,mt_rand(0,$this->width),mt_rand(0,$this->height),$pointColor);

}

}

//@产生干扰线

public function createNoiseLine(){

for($i=0;$inoiseLine;$i++) {

$lineColor=imagecolorallocate($this->image,mt_rand(0,255),mt_rand(0,255),20);

imageline($this->image,0,mt_rand(0,$this->width),$this->width,mt_rand(0,$this->height),$lineColor);

}

}

//@扭曲文字

public function distortionText(){

$this->distorti

imagefill($this->distortionImage,0,0,$this->randBgColor);

for($x=0;$xwidth;$x++){

for($y=0;$yheight;$y++){

$rgbColor=imagecolorat($this->image,$x,$y);

imagesetpixel($this->distortionImage,(int)($x+sin($y/$this->height*2*M_PI-M_PI*0.5)*3),$y,$rgbColor);

}

}

$this->image=$this->distortionImage;

}

//@生成验证码图片

public function createImage(){

$this->initImage(); //创建基本图片

$this->createText(); //输出验证码字符

if($this->distortion){$this->distortionText();} //扭曲文字

$this->createNoisePoint(); //产生干扰点

$this->createNoiseLine(); //产生干扰线

if($this->showBorder){imagerectangle($this->image,0,0,$this->width-1,$this->height-1,$this->randFontColor);} //添加边框

imagepng($this->image);

imagedestroy($this->image);

if($this->distortion){imagedestroy($this->$distortionImage);}

return $this->textContent;

}

}

?>使用方法:

<?php

//session_start();

header(“Content-type:image/png”);

include(‘captcha5_class.php’);

$captcha5=new Captcha();

//@设置验证码宽度

//$captcha5->setWidth(200);

//@设置验证码高度

//$captcha5->setHeight(50);

//@设置字符个数

$captcha5->setTextNumber(5);

//@设置字符颜色

//$captcha5->setFontColor(‘#ff9900’);

//@设置字号大小

//$captcha5->setFontSize(25);

//@设置字体

$captcha5->setFontFamily(‘c:\windows\fonts\STXINGKA.TTF’);

//@设置语言

$captcha5->setTextLang(‘cn’);

//@设置背景颜色

//$captcha5->setBgColor(‘#000000’);

//@设置干扰点数量

//$captcha5->setNoisePoint(600);

//@设置干扰线数量

//$captcha5->setNoiseLine(10);

//@设置是否扭曲

//$captcha5->setDistortion(true);

//@设置是否显示边框

$captcha5->setShowBorder(true);

//输出验证码

$code=$captcha5->createImage();

//$_SESSION[‘captchaCode’][‘content’]=$code;

//$_SESSION[‘captchaCode’][‘time’]=microtime();

?>

仿电影源码,ubuntu远程装系统,超小红色爬虫,梅林 php,洛阳seo王志强lzw

以上就介绍了12306验证码 支持中文字母数字、自定义字体php验证码代码,包括了12306验证码方面的内容,希望对PHP教学有兴趣的朋友有所帮助。

yaf源码翻阅之 启动,vscode速度变慢了,怎样美化ubuntu,tomcat 不接受请求,爬虫段子,php ini解析,山西seo网络公司,如何开发一个租车网站,手机微网站怎么设计模板lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。