一个简单的php图形验证码生成程序
代码如下 | 复制代码 |
<?php * eifr is free software session_start(); // main $_SESSION['eifr_checkvcode'] = $vcodes; if(function_exists('imagecreate')){ $img = imagecreate(44,18); //add interference ?> |
注:php生成验证码需要开启php gd图片库哦,要不是不能生成的。
以前我都讲过了很多关于获取文件后缀名的方法,今天我们再次总结一下关于利用不同种函数来取得,有需要的朋友可以参考一下一,php explode函数,函数用法参考 http://www.111cn.net/phper/24/f486bb8b0528a628528530b295e6281b.htm
代码如下 | 复制代码 |
$pic = 'abc.php'; echo $num = count($pics); |
这样就可以输出
.php了。
下面利用foreach 此函数用法 http://www.111cn.net/phper/18/foreach-foreach.htm
代码如下 | 复制代码 |
foreach ($pics as $value) //2 |
来有一个比较好的函数end我推荐使用此函数快捷 end函数用法 http://www.111cn.net/w3school/php/func_array_end.htm
代码如下 | 复制代码 |
echo end($pics); |
其它的访方法可以在文件上传时判断,不过那需要文件上传不上传我们不能使用$_FILES来操作。
本文章分享一个自己使用的验证码实例,从生成图片验证码到利用使用验证码的实例,有需要学习的同学可以参考一下本文章哦。hyml页面
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <body> |
verifycode.php文件代码如下
代码如下 | 复制代码 |
<?php /* 图片验证码 Powered By KASON */ session_start(); $num=4;//验证码个数 $width=80;//验证码宽度 $height=20;//验证码高度 $code=' '; for($i=0;$i<$num;$i++)//生成验证码 { switch(rand(0,2)) { case 0:$code[$i]=chr(rand(48,57));break;//数字 case 1:$code[$i]=chr(rand(65,90));break;//大写字母 case 2:$code[$i]=chr(rand(97,122));break;//小写字母 } } $_SESSION["VerifyCode"]=$code; $image=imagecreate($width,$height); imagecolorallocate($image,255,255,255); for($i=0;$i<80;$i++)//生成干扰像素 { $dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255)); imagesetpixel($image,rand(1,$width),rand(1,$height),$dis_color); } for($i=0;$i<$num;$i++)//打印字符到图像 { $char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255)); imagechar($image,60,($width/$num)*$i,rand(0,5),$code[$i],$char_color); } header("Content-type:image/png"); imagepng($image);//输出图像到浏览器 imagedestroy($image);//释放资源 ?> |
checkcode.php文件如下
代码如下 | 复制代码 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
功能:
1、在某个页面上显示查询数据,并在每条数据后增加删除功能,点击“删除”,删除掉数据,同时刷新页面
2、用GET方式获得删除条件
数据库连接变量connectvars.php
代码如下 | 复制代码 |
<?php //服务器 define('DB_HOST', 'localhost'); //用户名 define('DB_USER', 'root'); //密码 define('DB_PASSWORD', 'root'); //数据库 define('DB_NAME','test') ; ?> |
记录展示页面display.php,每条记录后有“删除”功能,点击“删除”,可删除该条记录,同时刷新页面
代码如下 | 复制代码 |
<?php |
PHP数组的定义
代码如下 | 复制代码 |
…… |
在本代码片段的第一行,定义了一个一维数组$array,第二行的时候我们格式化输出了这个数组,结果是这样的:
代码如下 | 复制代码 |
array(3) { |
现在兄弟解释一下这个输出结果,首先这个数组的输出结果的第一行,
array(3)告诉我们这是个有三个元素的数组,
首先0号元素是一个长度为3的字符串(string(3))…
篇幅关系剩下两个就不说了吧,吼吼……,这说明什么呢?这说明在PHP中如果我们不为数组指定下标的话,那么他就自己自作主张的从零开始给我们弄一个下标出来——也就是PHP数组中的键名;再看看下边的例子:
代码如下 | 复制代码 |
…… $array = array('one',”hello”=>'two','three'); var_dump($array); |
……这一次我们定义数组的时候,为第二个元素指定了下标(从此以后,在本文中就叫做键名了,下标有点含糊不清!),第二个元素指定了键名(hello),咱们再看看输出结果:
代码如下 | 复制代码 |
array(3) { |
我想你也像我一样看到了一个很智能的现象,第一个元素的键名还是0——这个我们可以理解,因为我们没有指定,而PHP数组必须要有一个键名,PHP就自作主张从零开始创立了一个键名;第二个元素的时候,我们指定了键名,PHP就尊重我们的意见用了这个键名;复杂的事情在第三个元素,
第三个元素,看起来也很简单,我们没有指定键名,PHP自动的把最大整数键名加上1,作为了键名。但是大家想过没有,如果我们把第一个元素的键名修改为“-5”,第二个元素键名不变,结果会是什么呢?我们拭目以待:
代码如下 | 复制代码 |
…… $array = array(-5=>'one',"hello"=>'two','three'); var_dump($array); …… |
如果你想当然的认为,第三个元素的键名应该是-4,那么我告诉你在PHP4.3.0之前这个想法是对的,但是之后就错了,现在也就是PHP4.3.0之后的版本你将看到如下结果:
代码如下 | 复制代码 |
array(3) { |
是的第三个元素是从0开始的,也就是不管你的负数有多小,下一个元素要是让PHP来定义键名的话,那么他就是从0开始——记住这个地方说的是,在现有的键名中如果最大的依然是个负数,不管负数有多小,PHP也是从零开始下一个键名。
PHP数组的销毁很简单,像销毁其他变量一样。
销毁整个数组:unset($array)
销毁数组中的一个元素:unset($array[-5])
不管在现实生活中还是程序世界里,顺序总是很重要——真不敢想象一个没有顺序的世界会什么样子!PHP数组也不例外。PHP提供了四组针对PHP数组进行排序的函数,前三种都是针对一维数组的,我们先说这三种,第四种对多维数组的排序在下一篇文章中说,那个有点复杂。
第一组 :sort 和 rsort ,按照PHP数组键值的顺序asc和逆序desc进行排序,同时破坏原来数组的索引关系——其实是删除索引之后重新建立从0开始的数字索引。看一下例程:
代码如下 | 复制代码 |
<?php 看一下第一个输出结果,第一个输出: |
发现没有我们原来定义的索引a哪里去了?哪里去了?可以肯定的说是被他们无情的删除了,你要是对原来的索引关系并不在意的话,可以使用他们!
第二组函数:asort 和 arsort ,这两个函数就比较厉害一点了,只要他们可以保留数组原有的索引关系,把上例的sort 和 rsort 分别用这两个函数替换一下,看运行结果:
代码如下 | 复制代码 |
array(2) { ["a"]=> int(1) [0]=> int(2) } array(2) { [0]=> int(2) ["a"]=> int(1) } |
这个一看就明白的,不用说了吧!
第三组PHP数组排序函数:krsort 和 ksort 这两个不同于以上两组,这两函数是对键名进行排序的,大家可以把上例的函数替换成这两个,看看具体运行结果,这里也不说了,不然这个文章写的就太长了,怕有些兄弟没有耐心看到本文的重点,虽然重点就在下边!
通过自定义函数对PHP数组进行排序,有三个函数分别是:
uasort 通过自定义函数对PHP数组的键值进行排序,并且保留原来的索引关系。
uksort 通过自定义函数对PHP数组的键名进行排序,并且保留原来的索引关系。
usort通过自定义函数对PHP数组的键值进行排序,并且删除原来的索引关系,从零开始建立新的索引。
这个地方当然需要一个例子:
<!--p
//首先顶一个函数,这个函数需要接受两个参数,并且返回值是一定的
//第一个参数等于第二个参数的时候返回0,小于的时候返回-1,大于返回1
代码如下 | 复制代码 |
function cmp($a,$b){ 输出结果: |
,呵呵……是不是比不排序还乱呢?我们这里只是演示了使用的方法而已,具体你用到的时候自己搞吧!你要是不对这些数值进行操作之后再比较,例如我们这里:
$a+=1;
$b+=3;//改变这些值之后进行比较
在PHP手册中,一共定义了74个数组函数,涵盖了PHP数组的定义,赋值,排序,数值操作,比较,以及对数组的键名,键值反转……等等我们几乎能够想到的所有功能。有需要的同学可以去参考一下啊
相关文章
- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
- 本文通过两个示例讲解了一下Process类调用外部应用程序的基本用法,并简单讲解了StartInfo属性,有需要的朋友可以参考一下。...2020-06-25
- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
- 大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
jQuery Real Person验证码插件防止表单自动提交
本文介绍的jQuery插件有点特殊,防自动提交表单的验证工具,就是我们经常用到的验证码工具,先给大家看看效果。效果图如下: 使用说明 需要使用jQuery库文件和Real Person库文件 同时需要自定义验证码显示的CSS样式 使用实例...2015-11-08- 这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
- 这篇文章主要为大家详细介绍了JS实现随机生成验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-06
- PS排除重叠形状是什么意思?很多朋友都不是很清楚,其实方法很简单的,下面小编就为大家介绍介绍一下,不会的朋友可以参考本文,来看看吧。 步骤:1、在PS中,选择“矩形工具...2016-12-31
将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文
时常会写用c#一些程序,但如何将他们和photoshop一样的大型软件打成一个压缩包,以便于发布....2020-06-25- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
- 这篇文章主要介绍了微信小程序 二维码生成工具 weapp-qrcode详解,教大家如何在项目中引入weapp-qrcode.js文件,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下...2021-10-23
- 这篇文章主要为大家详细介绍了微信小程序自定义tabbar组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-14
- 这篇文章主要介绍了微信小程序 网络请求(GET请求)详解的相关资料,需要的朋友可以参考下...2016-11-22
- 这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
- 通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能效果图:先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下:复制代码 代码如下: <!DOCTYPE ht...2015-03-15
- 这篇文章主要介绍了Python爬取微信小程序通用方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-29
- 这篇文章主要介绍了微信小程序(应用号)开发新闻客户端实例的相关资料,需要的朋友可以参考下...2016-10-25
- 验证码类文件 CreateImg.class.php <?php class ValidationCode { private $width,$height,$codenum; public $checkcode; //产生的验证码 private $checkimage; //验证码图片 private $disturbColor = ''; /...2015-11-08