当前位置:首页 > 叨叨念念

PHP生成简单的验证码实例。

验证码图片的生成是验证码功能的核心,需要生成一个随机字符,并将其渲染为图像展示给用户。PHP中可以使用GD库来生成验证码图片。


GD库是一种用于动态创建图像的PHP扩展,它提供了多种函数可以用于创建图像、修改图像、保存图像等操作,通过GD库可以很方便地创建验证码图片。


使用GD生成验证码步骤:

1、创建图片大小,背景颜色。

本文主要介绍关于PHP目前比较常见的五大运行模式:CGI,FAST-CGI,CLI,Web模块模式(mod_php),ISAPI。


1、CGI(通用网关接口/ Common Gateway Interface)

通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。CGI方式在遇到连接请求(用户请求)先要创建cgi的子进程,激活一个CGI进程,然后处理请求,处理完后结束这个子进程。这就是fork-and-execute模式。所以用cgi方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。都会当用户请求数量非常多时,会大量挤占系统的资源如内 存,CPU时间等,造成效能低下。

bin2hex()函数

bin2hex()函数把ASCII字符的字符串转换为十六进制值。

语法:bin2hex(string)

string 必需。要转换的字符串。

例子:bin2hex("Hello world!"); \\输出48656c6c6f20776f726c6421


pack()函数

pack() 函数把数据装入一个二进制字符串。

语法:pack(format,args+)

format 必需。规定在包装数据时所使用的格式。

args+ 可选。规定被包装的一个或多个参数。

例子:pack("H*","48656c6c6f20776f726c6421"); \\输出Hello world!


实例展示

1、把图片test.jpg转换为十六进制形式字符串

$data = file_get_contents("test.jpg");

$result = bin2hex($data);


2、把十六进制形式字符串转为一个二进制字符串

$data = pack("H*",$result);

在PHP编程过程中经常要取多个不重复的随机数。随机一个数可以用随机函数rand(),但是现在假如要在1-20中取5个不重复的数字,使用rand(1,20)只可以取一个数字,取5个不重复的随机数就比较麻烦了。比较简单的方法是用数组来取这5个随机数。下面这几种方法多是用数组来实现的。


方法一

首先创建一个有1-20元素的数组,对数组进行随机排序,取数组前5个元素。

很多PHP系统会用到通过积分判断用户等级,也就是说通过一个数字判断属于的范围。


假如通过[0,100,250,500,1000,2000]中找出一个数字所在的位置对应的等级。

方法一

通过if和elseif通过条件一一列出,确定是如果等级越多,if和elseif越多,对于过多的规则就不合适了,影响了效率。

MySQL使用ALTER TABLE语句修改表。常用的修改表的操作有修改表名、修改字段数据类型或者字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。


以下是对MySQL数据库表的一些语句写法:

1、修改表名

VMware Workstation网络的三种模式

VMware Workstation 提供了三种网络工作模式:

(1)、Bridged(桥接模式,VMnet0)

(2)、NAT(网络地址转换模式,VMnet8)

(3)、Host-Only(仅主机模式,VMnet1)


1、桥接模式

实体网卡相当于一个虚拟交换机VMnet0,主机和虚拟机同时连接到这个虚拟交换机上,主机和虚拟机是同等的,IP地址是从外部路由器分配。

网线水晶头标准接法

标准介绍

网线有两种做法,一种是交叉线,一种是平行(直通)线

交叉线的做法是:一头采用568A标准,一头采用568B标准,常用于PC网卡到PC网卡,HUB普通口到HUB普通口

平行(直通)线的做法是:两头同为568A标准或568B标准,常用于PC网卡到HUB普通口,HUB普通口到HUB级联口(当前大部分网线一般都是直通568B的做法,因为现在设备绝大部分可以自适应了)

568A标准: 1、白绿,2、绿,3、白橙,4、蓝,5、白蓝,6、橙,7、白棕,8、棕。

568B标准: 1、白橙,2、橙,3、白绿,4、蓝,5、白蓝,6、绿,7、白棕,8、棕