③PHP运用GD库实现图形验证码
项目码源:https://github.com/LVQINGDONG/learn_php/ 找到PHPGD_numberIMG分支下载。一,PHP GD 库的安装与配置找到php服务器配置文件夹下的php.ini,打开文件并找到代码“;extension=php_gd2.dll”去掉前面的分号就行“;”这里使用wamp服务器,在wamp→bin→php→php7.0
项目码源:https://github.com/LVQINGDONG/learn_php/ 找到PHPGD_numberIMG分支下载。
一,PHP GD 库的安装与配置
找到php服务器配置文件夹下的php.ini,打开文件并找到代码“;extension=php_gd2.dll”去掉前面的分号就行“;”
这里使用wamp服务器,在wamp→bin→php→php7.0.4目录下找到了php.ini文件。
配置完成之后,测试配置是否成功:
新建一个php文件输入代码,测试:
//测试是否可以使用GD库 if(extension_loaded('gd')){ echo "可以使用"; foreach(gd_info() as $cate=>$value) echo "$cate:$value<br>"; } else{ echo "无法使用gd"; }成功后浏览器显示:
二,PHP GD库的使用说明
使用PHP GD 库创建图像有四个步骤:
①创建画布。所有的绘图都需要在一个背景层上完成,以后处理图形都基于这个背景图层进行操作。
原理:画布实际上就是在内存中开辟了一块临时的内存区域,用于存储图像信息。
②绘制图像。基于之前画布创建的背景层,使用php图像函数设置图像颜色以及绘制图形。
③输出图像。完成图像绘制之后,需要将图片以某种格式保存到服务器中或者直接输出到页面显示。
④释放资源。图像输出后,存储在内存中的画布信息区域就不存在了,就需要及时清除它占用的内存资源。
三,实现图形验证码
①创建image_create1.php输入代码,先来使用PHP GD 库试着输出,代码具体功能看注释:
<?php /** * Created by PhpStorm. * User: lenovo * Date: 2018/6/3 * Time: 20:44 */ 测试是否可以使用GD库 //if(extension_loaded('gd')){ // echo "可以使用"; // foreach(gd_info() as $cate=>$value) // echo "$cate:$value<br>"; //} //else{ // echo "无法使用gd"; //} header("Content-type:image/png"); //设置生成图片的格式 $im=imagecreate(120,30); //新建画布 $bg=imagecolorallocate($im,0,0,255); //设置背景 $sg=imagecolorallocate($im,255,255,255); //设置前景 imagefill($im,120,30,$bg); //填充背景 imagestring($im,7,8,5,"image create",$sg); //填充字符串 imagepng($im); //输出图像 imagedestroy($im); //销毁图像资源
打开浏览器看看效果:
②知道了使用方法之后,创建image_create2.php ,开始制作验证码,代码如下:
<?php /** * Created by PhpStorm. * User: lenovo * Date: 2018/6/3 * Time: 21:08 */ header("Content-type:image/png"); $im=imagecreate(80,20); $bg=imagecolorallocate($im,255,255,0); $sg=imagecolorallocate($im,0,0,0); $ag=imagecolorallocate($im,231,104,50); imagefill($im,120,30,$bg); $str="qwertyuipasdfghjklxcvbnm123456789QWERTYUIPASDFGHJKLXCVBNM"; $len=strlen($str)-1; for ($i=0;$i<4;$i++){ $str1=$str[mt_rand(0,$len)]; imagechar($im,7,16*$i+7,2,$str1,$sg); } for($i=0;$i<100;$i++){ imagesetpixel($im,rand()%80,rand()%20,$ag); } imagepng($im); imagedestroy($im);
打开浏览器看效果:
到这里PHP GD验证码就做好了。
---------------------------------------------------------------------------------------------------
用到的函数及其功能:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)