您的位置 首页 php

PHP验证码技术的实现

好久不写文章了,今天给大家带来php的高级功能实现技术,祝大家学业有成!

基本图像处理技术

要想使用图片处理技术,必须先到php.ini中,开启“php_gd2.dll”库——通常称为GD库!

创建画布

画布 = ImageCreate(宽, 高); //普通低执行画布

画布 = ImageCreateTrueColor(宽, 高); // 真彩色 画布

画布 = ImageCreatefromJpeg(图片文件路径)

画布 = ImageCreatefromGif(图片文件路径)

画布 = ImageCreatefromPng(图片文件路径)

画布基本操作

分配颜色:ImageColorAllocate(画布, 红,绿,蓝):

就是指设定“画图的刷子”的颜色,结果是一个“颜色值”

红绿蓝都是0-255的数字。

填充画布:ImageFill(画布, x, y, 颜色):

在画布的位置(x,y)处,“倾倒”设定颜色的“墨水”——结果是,凡是跟该点“连成一片”的区域,都染上了该颜色

画布上写字:ImageString(画布,大小,x,y,文字,颜色);

大小:只有1-5个数字可用,表示从最小到最大的文字。

x,y:是指放文字的左上角位置;

文字:就是要输出的字符串,不能使用中文。

参考另一个可以更自由书写文字的函数:imagettftext()

画直线:imageline(画布,点1x,点1y,点2x,点2y,颜色);

画矩形:imagerectangle(画布,左上角x,左上角y,右下角x,右下角y,颜色);

画弧线:imgarc(画布,中心x,中心y,椭圆宽,椭圆高,起始角度,终止角度,颜色)

获取图片尺寸:imagesx(画布),imagesy(画布)

适用于从现有图片来创建的画布。

获取图片尺寸及类型:getImageSize(图片文件路径), 结果是一个数组:array(0=>宽度, 1=>高度, 2=>类型标记,’mine’=>mime 字符串 )

举例1:

举例2:画直线,画矩形,画弧线:

举例3:

输出图片(图像)

对于一个画布资源(来源于若干个imagecreate….()函数),它要变成(表现为)图片(文件),有两种做法:

做法1:

直接输出成为一个图片文件——需要指定路径和文件名(含后缀):

imagegif( $画布, “./xxx.gif”);

imagejpeg( $画布, “./xxx.jpg”);

imagepng( $画布, “./xxx.png”);

做法2:

直接将一个php代码中的画布资源,“输出为一个请求的结果”——就是在浏览器中直接看到图片。

比如类似这样:

//结果,浏览器中看到的是一个图片——而不是 html 网页!

或:

page2.html中有一个img标签,类似这样:

<img src=”” />//结果,page2.html中看到一个图片(及其他网页内容)

特别注意:上述这种情况,都是指:一个php文件,执行的结果是一个可显示的图片——其中不能有任何html或其他文字输出!!!

结果为:

或直接浏览该php文件:

验证码技术的实现

就是用于识别是“人”还是“机器”的一种程序。

验证码其实是一个“我们的程序生成”的图片——我们的程序能够认识它——但别人的不可以。

基本原理:

页面1:

随机产生一个验证码(文本),并存入session;

该页面可以生成一张图片,图片上有该文本。

页面2:

显示page1的图片,并让人(用户)去输入看到的图片上的文本。

以及填写其他表单信息,并提交到页面3

页面3:

取出页面1存入到session的那个文本信息,跟页面2上用户输入并提交的验证码信息进行对比:

如果相等:表示是合法的提交

如果不等:表示非法提交——机器自动提交。

代码实现:

page1:valicCode.php

page2:登录的试图文件login.html

page3:登录提交后的checklogin动作(方法)中:

图片缩放技术

原理:

1,打开一个图片——即将一个图片文件载入到一个“画布”中——画布1

2,新建另一个画布(画布2):其中可以将画布1的某些“局部矩形区域”,copy出来放入当前画布的某个位置并设定大小。

3,将画布2保存为文件。

代码演示:

文章来源:智云一二三科技

文章标题:PHP验证码技术的实现

文章地址:https://www.zhihuclub.com/80545.shtml

关于作者: 智云科技

热门文章

网站地图