常用代码之 验证码的实现
先说说原理:首先生成16进制的数(验证码)是几位自己定义,放入session中,用于和表单提交过来的数据作对比。之后开始创建画布,添加背景,画干扰线,最后把生成的验证码添加到画布中。这就是验证码,之后再页面中调用都可以了
<?php
/**
*2013-8-6
*@author Frank
*验证码
*/
$code='';
for($i=0;$i<4;$i++){ // 4 是验证码的字数
$code.=dechex(rand(1,15)); // dechex是把数字转成16进制的数
}
// 把数存入session之中
session_start();
$_SESSION['code']=$code;
$image=imagecreatetruecolor(110, 30); //创建画布 // 宽和高
$color=imagecolorallocate($image, 225, 0, 255);// 添加背景颜色
//画干扰线
for($i=0;$i<10;$i++){//10 干扰线的条数
imageline($image, rand(0,100), rand(0,30), rand(0,110), rand(0,30), imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255)));
//imagecolorallocate 给干扰线添加背景色
}
imagestring($image,rand(3,8),rand(3,80),rand(3,20),$code,$color);
//第一个rand是字体大小
header("content-type:image/png");
imagepng($image);
imagedestroy($image);
?>
html页面中之中img标签中 指向自己写的验证码即可
<div>
<img src="./code.php" οnclick="this.src='code.php?a='+Math.random()"/>
</div>
//添加随机数的意义在于,每次点击页面代码的时候,都会传一个参数从而达到每次都刷新的效果
实现文件的复制。
$src //源文件 $dst //目标地址
首先判断$src
php 将xml格式转换成数组
//xml 转数组
function xmltoarray($object, &$tmparr=array()) {
if (is_object($object)) {
$tmparr = get_object_vars($object);
}
foreach ($tmparr as $k => $v) {
if (is_array($v)) {
$tmparr[$k] = xmltoarray($v, $tmparr[$k]);
} elseif (is_object($v)) {
$tmparr[$k] = xmltoarray($v, $tmparr[$k]);
} else {
$tmparr[$k] = $v;
}
}
return $tmparr;
}
php文件上传相关php.ini配置:
①:file_uploads 是否允许上传文件,默认ON
②:upload_tmp_dir 上传文件防止的临时目录,未指定则使用系统默认位置
③:upload_max_filesize 允许上传文件的大小的最大值,默认为2M
④:post_max_size 控制采用POST方法进行一次表单提交中PHP所能接受的最大数据量,如果希望用PHP文件上传,则此值要改为比upload_max_filesize要大
⑤:max_input_time 以秒为单位对通过POST/GET/PUT方式接受数据时间进行限制。
⑥:memory_limit 为了避免正在运行的脚本大量使用系统内存,PHP允许定义内存使用限额。通过设置此参数来制定单个脚本程序可以使用的最大内存容量,应适当大于post_max_size值
⑦:max_execution_time 用来设置在强制终止脚本前PHP等待脚本执行完毕的时间,单位秒。次选项可限制死循环脚本,但当存在一个长时间的合法活动时(如:上传大文件),这项功能也会导致操作失败。这样情况下必须考虑将此变量增加。