php网页生成验证码实现程序

 更新时间:2016年11月25日 15:48  点击:2265
首先在表单页面展现之前,生成一副图片,并添加上一些干扰像素或线段(防止OCR程序自动识别) 再由PHP程序自动生成随机的待验证的一串数字和字母组合的字符, 调用imagettftext()函数画到图片中, 并把这串字符保存到Session级变量中。

完整实例

自动检测背景和字体,并随机选取背景图片中的一块范围,随机使用字体,显示验证字符串时随机显示字体大小,字符间距,字符颜色等

 代码如下 复制代码

<?php
/**
* Class for Validate image
* @author  zcs
* @version 1.0-20090828
*/

session_start();
class validimg
{
//背景图片目录
var $backgroundpath = ‘validbg’;
//生成验证码宽度
var $width =’80′;
//生成验证码高度
var $height =’25′;
//背景
var $background;
//验证文本
var $text=’abcd’;
//字体目录
var $fontpath = ‘validbg’;
//字体
var $font=’simhei.ttf’;
//字体宽度
var $font_width = ’20′;

function validimg($text)
{
$this->text = $text;
//随机选取一个背景文件
$bgdir =  @dir($this->backgroundpath);
while(false !== ($image = $bgdir ->read()))
{
if($image != ‘.’ && $image != ‘..’ && $this->checktype($image) != false)
{
$backgroundarr[] = $image;

}
}
$bgdir->close();
//随机选取一个字体文件
$fonts =  @dir($this->fontpath);
while(false !== ($font = $fonts ->read()))
{
if($font != ‘.’ && $font != ‘..’ && $this->checktype($font,’FONT’) != false)
{
$fontsarr[] = $font;
}
}
$fonts->close();
$this->font = $fontsarr[array_rand($fontsarr,1)];
$this->background = $backgroundarr[array_rand($backgroundarr,1)];

$this->output();
}

//创建背景图像handdle
function createbackground()
{
switch ($this->checktype($this->background))
{
case ‘jpg’:
$bghanddle = @imagecreatefromjpeg( $this->backgroundpath.’/’.$this->background);
break;
case ‘gif’:
$bghanddle = @imagecreatefromgif( $this->backgroundpath.’/’.$this->background);
break;
case ‘png’:
$bghanddle = @imagecreatefrompng( $this->backgroundpath.’/’.$this->background);
break;
default:
}
return $bghanddle;
}
//检查文件类型
function checktype( $image,$type = ‘IMAGE’)
{
$ext = substr( $image, strrpos($image,’.')+1);
if($type == ‘IMAGE’)
{
if ($ext == ‘jpg’ || $ext ==’gif’ || $ext ==’png’)
return $ext;
else return false;
}else if($type == ‘FONT’)
{
if ($ext == ‘ttf’)
return $ext;
else return false;
}
}
//输出
function output()
{
header(“content-type:image/png;”);
//生成图像
$img = @imagecreatetruecolor( $this->width,$this->height);
$bghanddle = $this->createbackground();
//从背景图像随机位置载入一块作为背景
if($bghanddle)
{
$randx=rand(0,(imagesx($bghanddle) – $this->width));
$randy=rand(0,(imagesy($bghanddle) – $this->height));
}
imagecopy($img,$bghanddle,0,0,$randx,$randy,$this->width,$this->height);
//随机选择角度 字体大小 坐标输出文字
for($i=0;$i<strlen($this->text);$i++)
{
$angle = rand(-30,30);
$fontsize = rand(15,20);
$x = rand($this->font_width*$i,$this->font_width*$i+10);
$color = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255));
imagettftext($img,$fontsize,$angle,$x,20,$color,$this->fontpath.’/’.$this->font,substr($this->text,$i,1));
}
imagepng($img);
//释放资源
imagedestroy($img);
imagedestroy($bghanddle);
}
}

new validimg($_SESSION['valid']);
?>

测试文件validtest.php

 代码如下 复制代码

<?php
/**
* 验证码测试
* @author  zcs
*/
session_start();
$_SESSION['valid']= randstr();
echo $_SESSION['valid'];

//随机生成字符串

function randstr($num=4)
{
$chars = ‘ABDEFGHJKLMNPQRSTVWXYabdefghijkmnpqrstvwxy23456789′;
$randstr=”;
for($i=0;$i<$num;$i++)
{
$randstr.=substr($chars,rand(0,strlen($chars)),1);
}
return $randstr;
}
?>
<img src=”validimg.php” />


生成gif动态验证码

PHP生成GIF动画来实现动态图片验证码,以下是实现过程。

ImageCode函数通过GIFEncoder类实现的GIF动画


/**  
 * ImageCode 生成GIF图片验证  
 * @param $string 字符串  
 * @param $width 宽度  
 * @param $height 高度  
 * */ 
function ImageCode($string = '', $width = 75, $height = 25)  
{  
    $authstr = $string ? $string : ((time() % 2 == 0) ? mt_rand(1000, 9999) : mt_rand(10000, 99999));   
      
    $board_width = $width;  
    $board_height = $height;  
    // 生成一个32帧的GIF动画  
    for($i = 0; $i < 32; $i++)  
    {  
        ob_start();  
        $image = imagecreate($board_width, $board_height);  
        imagecolorallocate($image, 0,0,0);  
        // 设定文字颜色数组   
        $colorList[] = ImageColorAllocate($image, 15,73,210);  
        $colorList[] = ImageColorAllocate($image, 0,64,0);  
        $colorList[] = ImageColorAllocate($image, 0,0,64);  
        $colorList[] = ImageColorAllocate($image, 0,128,128);  
        $colorList[] = ImageColorAllocate($image, 27,52,47);  
        $colorList[] = ImageColorAllocate($image, 51,0,102);  
        $colorList[] = ImageColorAllocate($image, 0,0,145);  
        $colorList[] = ImageColorAllocate($image, 0,0,113);  
        $colorList[] = ImageColorAllocate($image, 0,51,51);  
        $colorList[] = ImageColorAllocate($image, 158,180,35);  
        $colorList[] = ImageColorAllocate($image, 59,59,59);  
        $colorList[] = ImageColorAllocate($image, 0,0,0);  
        $colorList[] = ImageColorAllocate($image, 1,128,180);  
        $colorList[] = ImageColorAllocate($image, 0,153,51);  
        $colorList[] = ImageColorAllocate($image, 60,131,1);  
        $colorList[] = ImageColorAllocate($image, 0,0,0);  
        $fontcolor = ImageColorAllocate($image, 0,0,0);  
        $gray = ImageColorAllocate($image, 245,245,245);   
          
        $color = imagecolorallocate($image, 255,255,255);  
        $color2 = imagecolorallocate($image, 255,0,0);  
          
        imagefill($image, 0, 0, $gray);  
          
        $space = 15;        // 字符间距  
        if($i > 0)          // 屏蔽第一帧  
        {  
            for ($k = 0; $k < strlen($authstr); $k++)   
            {   
                $colorRandom = mt_rand(0,sizeof($colorList)-1);   
                $float_top = rand(0,4);  
                $float_left = rand(0,3);  
                imagestring($image, 6, $space * $k, $top + $float_top, substr($authstr, $k, 1), $colorList[$colorRandom]);  
            }  
        }  
          
        for ($k = 0; $k < 20; $k++)   
        {   
            $colorRandom = mt_rand(0,sizeof($colorList)-1);   
            imagesetpixel($image, rand()%70 , rand()%15 , $colorList[$colorRandom]);   
      
        }  
        // 添加干扰线  
        for($k = 0; $k < 3; $k++)  
        {  
            $colorRandom = mt_rand(0, sizeof($colorList)-1);   
            // $todrawline = rand(0,1);  
            $todrawline = 1;  
            if($todrawline)  
            {  
                imageline($image, mt_rand(0, $board_width), mt_rand(0,$board_height), mt_rand(0,$board_width), mt_rand(0,$board_height), $colorList[$colorRandom]);  
            }  
            else   
            {  
                $w = mt_rand(0,$board_width);  
                $h = mt_rand(0,$board_width);  
                imagearc($image, $board_width - floor($w / 2) , floor($h / 2), $w, $h,  rand(90,180), rand(180,270), $colorList[$colorRandom]);  
            }  
        }  
        imagegif($image);  
        imagedestroy($image);  
        $imagedata[] = ob_get_contents();  
        ob_clean();    
        ++$i;    
    }  
      
    $gif = new GIFEncoder($imagedata);    
    Header ('Content-type:image/gif');    
    echo $gif->GetAnimation();    

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript">
 function refresh_code()
 {
  form1.imgcode.src="verifycode.php?a="+Math.random();
 }
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="checkcode.php">
  <label for="code">验证码:</label>
  <input type="text" name="code" id="textfield" />
  <img id="imgcode" src="VerifyCode.php" alt="验证码" />
  <a href="javascript:refresh_code()">看不清?换一个</a>
  <input type="submit" name="button" id="button" value="提交" />
</form>
</body>
</html>

checkcode.php文件如下

 代码如下 复制代码

?<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
ini_set('display_errors', 'Off');
session_start();
  if((strtoupper($_POST["code"])) == strtoupper(($_SESSION["VerifyCode"]))){
 print("验证码正确,");
  }else{
    print("验证码错误,");
  }
  echo "提交的验证码:".strtoupper($_POST["code"]).",正确的验证码:".strtoupper($_SESSION["VerifyCode"]);
?>

云平台需要进行excel数据批量导入,使用的是phpExcel工具,小曲同学的代码都写好后,小数据量下测试都没有问题,可是一到正式环境下,数据超过千条(一行十列为一条数据),就报内存超出,很诡异~~~~有那么大吗???

先看实例

 代码如下 复制代码
<?php      
 
require_once 'PHPExcel.php';      
require_once 'PHPExcel/Writer/Excel5.php';   
require_once("..includemysqlconn.php");  
$sdate=$_POST["sdate"];//接受传递过来的生成时间段  
$edate=$_POST["edate"];  
//$sdate='2009-01-01';  
//$edate='2009-04-01';  
$cancel_time=date("YmdHis");  
 
$data=new MysqlConn();  
$data->connect();  
$sql="select * from employee_addminus where (oper_time between '$sdate' and '$edate') and isCanceled=0";  
     
// 创建一个处理对象实例      
$objExcel = new PHPExcel();      
     
// 创建文件格式写入对象实例, uncomment      
$objWriter = new PHPExcel_Writer_Excel5($objExcel);     
   
//设置文档基本属性      
$objProps = $objExcel->getProperties();      
$objProps->setCreator("章贡区医疗保险局");      
$objProps->setLastModifiedBy("章贡区医疗保险局");      
$objProps->setTitle("章贡区医疗保险局职工月增减变动报表");      
$objProps->setSubject("章贡区医疗保险局职工月增减变动报表");      
$objProps->setDescription("章贡区医疗保险局职工月增减变动报表");      
$objProps->setKeywords("章贡区医疗保险局职工月增减变动报表");      
$objProps->setCategory("变动报表");      
     
//*************************************      
//设置当前的sheet索引,用于后续的内容操作。      
//一般只有在使用多个sheet的时候才需要显示调用。      
//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0      
$objExcel->setActiveSheetIndex(0);      
$objActSheet = $objExcel->getActiveSheet();      
     
//设置当前活动sheet的名称      
$objActSheet->setTitle('月增减变动报表');      
     
//*************************************      
//      
//设置宽度,这个值和EXCEL里的不同,不知道是什么单位,略小于EXCEL中的宽度  
$objActSheet->getColumnDimension('A')->setWidth(20);   
$objActSheet->getColumnDimension('B')->setWidth(10);   
$objActSheet->getColumnDimension('C')->setWidth(6);   
$objActSheet->getColumnDimension('D')->setWidth(20);   
$objActSheet->getColumnDimension('E')->setWidth(12);   
$objActSheet->getColumnDimension('F')->setWidth(10);   
$objActSheet->getColumnDimension('G')->setWidth(20);   
$objActSheet->getColumnDimension('H')->setWidth(18);   
$objActSheet->getColumnDimension('I')->setWidth(12);   
$objActSheet->getColumnDimension('J')->setWidth(8);   
$objActSheet->getColumnDimension('K')->setWidth(8);   
$objActSheet->getColumnDimension('L')->setWidth(12);   
$objActSheet->getColumnDimension('M')->setWidth(10);   
$objActSheet->getColumnDimension('N')->setWidth(10);   
 
$objActSheet->getRowDimension(1)->setRowHeight(30);   
$objActSheet->getRowDimension(2)->setRowHeight(27);   
$objActSheet->getRowDimension(3)->setRowHeight(16);   
   
//设置单元格的值    
$objActSheet->setCellValue('A1', '章贡区医疗保险局职工月增减变动报表');   
//合并单元格  
$objActSheet->mergeCells('A1:N1');   
//设置样式  
$objStyleA1 = $objActSheet->getStyle('A1');      
$objStyleA1->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objFontA1 = $objStyleA1->getFont();      
$objFontA1->setName('宋体');      
$objFontA1->setSize(18);    
$objFontA1->setBold(true);      
 
//设置居中对齐  
$objActSheet->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('B2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('C2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('D2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('E2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('F2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('G2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('H2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('I2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('J2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('K2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('L2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('M2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
$objActSheet->getStyle('N2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
 
$objActSheet->setCellValue('A2', '现所在单位');   
$objActSheet->setCellValue('B2', '姓名');   
$objActSheet->setCellValue('C2', '性别');   
$objActSheet->setCellValue('D2', '身份证号码');   
$objActSheet->setCellValue('E2', '参保时间');   
$objActSheet->setCellValue('F2', '增减原因');   
$objActSheet->setCellValue('G2', '原所在单位');   
$objActSheet->setCellValue('H2', '增减时间');   
$objActSheet->setCellValue('I2', '退休时间');   
$objActSheet->setCellValue('J2', '原工资');   
$objActSheet->setCellValue('K2', '现工资');   
$objActSheet->setCellValue('L2', '定点医院');   
$objActSheet->setCellValue('M2', '操作人');   
$objActSheet->setCellValue('N2', '备注');   
 
//设置边框  
$objActSheet->getStyle('A2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('A2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('A2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('A2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('B2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('B2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('B2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('B2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('C2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('C2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('C2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('C2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('D2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('D2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('D2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('D2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('E2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('E2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('E2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('E2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('F2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('F2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('F2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('F2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
            $objActSheet->getStyle('G2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('G2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('G2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('G2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
            $objActSheet->getStyle('H2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('H2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('H2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('H2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('I2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('I2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('I2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('I2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('J2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('J2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('J2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('J2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('K2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('K2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('K2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('K2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('L2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('L2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('L2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('L2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('M2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('M2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('M2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('M2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
            $objActSheet->getStyle('N2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('N2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('N2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('N2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
 
$query=$data->query($sql);  
$i=1;  
//从数据库取值循环输出  
while($result=mysql_fetch_row($query)){  
$personName=$result[1];  
$idcard=$result[2];  
$old_company=$result[3];  
$new_company=$result[4];  
$sex=$result[5];  
$start_time=$result[6];  
$reason=$result[7];  
$retire_time=$result[8];  
$old_wages=$result[9];  
$new_wages=$result[10];  
$hospital=$result[11];  
$remarks=$result[12];  
$operator=$result[13];  
$oper_time=$result[14];  
 
    $n=$i+2;  
      
    $objActSheet->getStyle('B'.$n)->getNumberFormat()->setFormatCode('@');  
    $objActSheet->getStyle('E'.$n)->getNumberFormat()->setFormatCode('@');  
      
    $objActSheet->getRowDimension($n)->setRowHeight(16);   
      
    $objActSheet->getStyle('A'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('A'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('A'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('A'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('B'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('B'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('B'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('B'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('C'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('C'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('C'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('C'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('D'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('D'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('D'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('D'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('E'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('E'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('E'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('E'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('F'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('F'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('F'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('F'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
            $objActSheet->getStyle('G'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('G'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('G'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('G'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
            $objActSheet->getStyle('H'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('H'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('H'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('H'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('I'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('I'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('I'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('I'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('J'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('J'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('J'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('J'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('K'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('K'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('K'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('K'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
        $objActSheet->getStyle('L'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('L'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('L'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('L'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
            $objActSheet->getStyle('M'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('M'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('M'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('M'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
            $objActSheet->getStyle('N'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('N'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('N'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
    $objActSheet->getStyle('N'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  
      
    $xb="男";  
    if($sex==1){  
        $xb="女";  
    }  
      
    $objActSheet->setCellValue('A'.$n, $new_company);   
    $objActSheet->setCellValue('B'.$n, $personName);   
    $objActSheet->setCellValue('C'.$n, $xb);   
    $objActSheet->setCellValue('D'.$n, ' '.$idcard.' ');   
    $objActSheet->setCellValue('E'.$n, $start_time);   
    $objActSheet->setCellValue('F'.$n, $reason);   
    $objActSheet->setCellValue('G'.$n, $old_company);   
    $objActSheet->setCellValue('H'.$n, $oper_time);   
    $objActSheet->setCellValue('I'.$n, $retire_time);   
    $objActSheet->setCellValue('J'.$n, $old_wages);   
    $objActSheet->setCellValue('K'.$n, $new_wages);   
    $objActSheet->setCellValue('L'.$n, $hospital);   
    $objActSheet->setCellValue('M'.$n, $operator);   
    $objActSheet->setCellValue('N'.$n, $remarks);   
    $i++;  
}  
 
 
//*************************************      
//输出内容      
//      
 
$outputFileName = "tables/".$cancel_time."addminus.xls";      
//到文件      
$objWriter->save($outputFileName);      
//下面这个输出我是有个页面用Ajax接收返回的信息  
echo("<a href="tables/".$cancel_time."addminus.xls" mce_href="tables/".$cancel_time."addminus.xls" target='_blank'>点击下载电子表</a>");  


 
?>
小数据量没问题,但是大数据量时出现数据导入内存溢出经过查询之后,找到了

解决办法:

版本:1.7.6

在不进行特殊设置的情况下,phpExcel将读取的单元格信息保存在内存中,我们可以通过

 代码如下 复制代码

PHPExcel_Settings::setCacheStorageMethod()

来设置不同的缓存方式,已达到降低内存消耗的目的!

1、将单元格数据序列化后保存在内存中

 代码如下 复制代码

PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized; 

2、将单元格序列化后再进行Gzip压缩,然后保存在内存中

 代码如下 复制代码

PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip; 

3、缓存在临时的磁盘文件中,速度可能会慢一些

 代码如下 复制代码

PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;

4、保存在php://temp

 代码如下 复制代码
PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp; 

 

5、保存在memcache中

 代码如下 复制代码

PHPExcel_CachedObjectStorageFactory::cache_to_memcache


举例:

第4中方式:

 代码如下 复制代码

$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp; 
$cacheSettings = array( ' memoryCacheSize '  => '8MB' 
                      ); 
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); 

第5种:

 代码如下 复制代码

$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache; 
$cacheSettings = array( 'memcacheServer'  => 'localhost', 
                       'memcachePort'    => 11211, 
                      'cacheTime'       => 600 
                     ); 
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

要使用session需要PHP4.1以上的版本,而且需要把php.ini中的register_globle=Off设成register_globle=On。另外,session.cookie_path = / 这行不易更改。

PHP中的session默认情况下是使用客户端的Cookie。当客户端的Cookie被禁用时,会自动通过Query_String来传递。

Php处理会话的函数一共有11个,我们详细介绍一下将要用到几个函数。

1、 session_start

函数功能:开始一个会话或者返回已经存在的会话。

函数原型:boolean session_start(void);

返回值:布尔值

session工作原理

首先,PHP为建立Session的用户产生一个独一无二的字符串,用来标志这个用户的session.一般将这个字符串称作Session Id.然后“sess”+Session Id为文件名(例如一个Session ID为111,那么文件名为sess_111)在服务器的文件系统中建立一个文件,在文件中保存用户在Session所定义的全局变量的变量名和值。然后再将Session Id作为一个名为PHPSession的Cookie保存在用户端的文件系统中。
  然后,当用户再次连接服务器访问一个PHP脚本时,PHP从用户发来的PEESession这个Cookie中得到用户所在Session的Session Id,并根据Session Id从服务器的文件系统中保存Session信息的文件。最后从这个文件中读出用户在上次连接时所设置的全局变量的值。
  因此,我们可以看到Session的工作原理和我们上一节所介绍的身份认证的工作原理是一样的。所不同的只是Session将信息保存在了服务器的文件系统中,而我们将信息保存在了数据库中。当然使用Session好处就是数据的保存和获取是由PHP自动完成的,而直接使用Cookie的话就需要自己动手进行数据的保存和获取。
  Session利用Cookie的身份标志功能,将用户在浏览网站时需要保存的信息保存在服务器上。这样Session既克服了HTTP协议的缺陷,又防止了信息的泄漏,而且方便了编程者的使用,是一个非常好的解决方案。不过,Session的功能只有PHP4支持,PHP3是不支持Session的。因此使用PHP3进行网站构建的读者只能采用直接使用Cookie的方式。

session实例


在用session的时候,要先把php中的php.ini文件中session.sava.path项设置好.

 代码如下 复制代码

<?php 
// 启动 Session 
session_start();
// 声明一个名为 admin 的变量,并赋空值。
    $_SESSION["admin"] = null;
     ?>
<?php 
// 表单提交后… 
$posts = $_POST; 
// 清除一些空白符号 
foreach ($posts as $key => $value) 
{       $posts[$key] = trim($value);     }
$password = md5($posts["password"]);
     $username = $posts["username"];
      $query = “SELECT `username` FROM `user` WHERE `password` = ‘$password’”;
     // 取得查询结果
      $userInfo = $DB->getRow($query);
       if (!empty($userInfo))
         {
            if ($userInfo["username"] == $username)
           {         // 当验证通过后,启动 Session  
             session_start();    
             // 注册登陆成功的 admin 变量,并赋值 true  
               $_SESSION["admin"] = true; 
          }   
       else  
        {     
            die(“用户名密码错误”);  
        } 
      } 
       else
        {   
           die(“用户名密码错误”);
         }
         ?>  
          我们在需要用户验证的页面启动 Session,判断是否登陆:
          <?php
           // 防止全局变量造成安全隐患
            $admin = false; 
         // 启动会话,这步必不可少 
         session_start();
          // 判断是否登陆
           if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true)
             {   
              echo “您已经成功登陆”; 
           }
            else 
            {       // 验证失败,将 $_SESSION["admin"] 置为 false
                 $_SESSION["admin"] = false; 
                die(“您无权访问”); 
             }
             ?>
             <?php     session_start();
              // 保存一天
               $lifeTime = 24 * 3600; 
               setcookie(session_name(), session_id(), time() + $lifeTime, “/”);
               ?>
<?php     session_start(); 
// 这种方法是将原来注册的某个变量销毁
    unset($_SESSION["admin"]);
     // 这种方法是销毁整个 Session 文件
      session_destroy();
    ?>   
    我们来手动设置 Session 的生存期:
     <?php     session_start();
       // 保存一天
     $lifeTime = 24 * 3600;
      setcookie(session_name(), session_id(), time() + $lifeTime, “/”);
      ?>  
其实 Session 还提供了一个函数 session_set_cookie_params(); 来设置 Session 的生存期的,该函数必须在 session_start() 函数调用之前调用:
<?php 
// 保存一天 
$lifeTime = 24 * 3600; 
session_set_cookie_params($lifeTime); 
session_start();
    $_SESSION["admin"] = true;
?>

文章总结一下关于PHP each()与list()函数 有需要的朋友可参考一下。


void list ( mixed varname, mixed … )
注: list() 仅能用于数字索引的数组并假定数字索引从 0 开始

例子

 代码如下 复制代码


<?php

$info = array('coffee', 'brown', 'caffeine');

// Listing all the variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.n";

// Listing some of them
list($drink, , $power) = $info;
echo "$drink has $power.n";

// Or let's skip to only the third one
list( , , $power) = $info;
echo "I need $power!n";

// list() doesn't work with strings
list($bar) = "abcde";
var_dump($bar); // NULL
?>


each() 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动。
array each ( array &array )
返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。

 代码如下 复制代码

<?
$people = array("Peter", "Joe", "Glenn", "Cleveland");
print_r (each($people));
?>


each() 经常和 list() 结合使用来遍历数组,

例如:

 代码如下 复制代码

<?php
$cities=array("California"=>array("Martinez","San Francisco","Los Angeles"),
              "New York"=>array("New York","Buffalo")
            );
while (list($key,$value)=each($cities))
{    //echo $key;
//echo "fdash";
//echo
while (list($key0,$val)=each($value)){
echo "elements:$key0,value:$val<br>n";
}
}
?>

下面收藏了大量的我们常用的php 正则表达式规则大家如果不懂的参考本文章即可快速实现php正则表达式,有需要学习的朋友可参考一下。

我们来看一下正则表达式元字符的具体应用。
  /fo+/
  因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。
  /eg*/
  因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
  /Wil?/
  因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。
  除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,
  /jim{2,6}/
  上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。
  在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。
  s:用于匹配单个空格符,包括tab键和换行符;
  S:用于匹配除单个空格符之外的所有字符;
  d:用于匹配从0到9的数字;
  w:用于匹配字母,数字或下划线字符;
  W:用于匹配所有与w不匹配的字符;
  . :用于匹配除换行符之外的所有字符。
  (说明:我们可以把s和S以及w和W看作互为逆运算)
  下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。
  /s+/
  上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。
  /d000/


"^d+$"  //非负整数(正整数 + 0)

"^[0-9]*[1-9][0-9]*$"  //正整数

"^((-d+)|(0+))$"  //非正整数(负整数 + 0)

"^-[0-9]*[1-9][0-9]*$"  //负整数

"^-?d+$"    //整数

"^d+(.d+)?$"  //非负浮点数(正浮点数 + 0)

"^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数

"^((-d+(.d+)?)|(0+(.0+)?))$"  //非正浮点数(负浮点数 + 0)

"^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点

"^(-?d+)(.d+)?$"  //浮点数

"^[A-Za-z]+$"  //由26个英文字母组成的字符串

"^[A-Z]+$"  //由26个英文字母的大写组成的字符串

"^[a-z]+$"  //由26个英文字母的小写组成的字符串

"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串

"^w+$"  //由数字、26个英文字母或者下划线组成的字符串

"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$"    //email地址

"^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"  //url


正则表达式--验证手机号码:13[0-9]{9}

实现手机号前带86或是+86的情况:^((+86)|(86))?(13)d{9}$

电话号码与手机号码同时验证:(^(d{3,4}-)?d{7,8})$|(13[0-9]{9})

提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(w|\|/|.)+('|"| *|>)?  

提取信息中的邮件地址:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*  

提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(w|\|/|.)+('|"| *|>)?

提取信息中的IP地址:(d+).(d+).(d+).(d+)    

提取信息中的中国手机号码:(86)*0*13d{9}    

提取信息中的中国固定电话号码:((d{3,4})|d{3,4}-|s)?d{8}    

提取信息中的中国电话号码(包括移动和固定电话):((d{3,4})|d{3,4}-|s)?d{7,14}    

提取信息中的中国邮政编码:[1-9]{1}(d+){5}    

提取信息中的中国身份证号码:d{18}|d{15}    

提取信息中的整数:d+    

提取信息中的浮点数(即小数):(-?d*).?d+    

提取信息中的任何数字 :(-?d*)(.d+)?  

提取信息中的中文字符串:[u4e00-u9fa5]*    

提取信息中的双字节字符串 (汉字):[^x00-xff]*

[!--infotagslink--]

相关文章

  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • JS实现随机生成验证码

    这篇文章主要为大家详细介绍了JS实现随机生成验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-06
  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
  • Java生成随机姓名、性别和年龄的实现示例

    这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
  • jQuery Real Person验证码插件防止表单自动提交

    本文介绍的jQuery插件有点特殊,防自动提交表单的验证工具,就是我们经常用到的验证码工具,先给大家看看效果。效果图如下: 使用说明 需要使用jQuery库文件和Real Person库文件 同时需要自定义验证码显示的CSS样式 使用实例...2015-11-08
  • C#生成随机数功能示例

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • Jquery插件实现点击获取验证码后60秒内禁止重新获取

    通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能效果图:先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下:复制代码 代码如下: <!DOCTYPE ht...2015-03-15
  • PHP自动生成后台导航网址的最佳方法

    经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • php实现点击可刷新验证码

    验证码类文件 CreateImg.class.php <&#63;php class ValidationCode { private $width,$height,$codenum; public $checkcode; //产生的验证码 private $checkimage; //验证码图片 private $disturbColor = ''; /...2015-11-08
  • 基于JavaScript实现验证码功能

    这篇文章主要介绍了基于JavaScript实现验证码功能的相关资料...2017-04-03
  • js生成随机数的方法实例

    js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
  • 单击按钮发送验证码,出现倒计时的简单实例

    下面小编就为大家带来一篇单击按钮发送验证码,出现倒计时的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 代码...2017-07-06
  • PHP验证码生成与验证例子

    验证码是一个现在WEB2.0中常见的一个功能了,像注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性,我们会看到有些网站没有验证码,但那是更高级的验证了,...2016-11-25
  • PHP生成不同颜色、不同大小的tag标签函数

    复制代码 代码如下:function getTagStyle(){ $minFontSize=8; //最小字体大小,可根据需要自行更改 $maxFontSize=18; //最大字体大小,可根据需要自行更改 return 'font-size:'.($minFontSize+lcg_value()*(abs($maxFo...2013-10-04
  • 基于Pytorch版yolov5的滑块验证码破解思路详解

    这篇文章主要介绍了基于Pytorch版yolov5的滑块验证码破解思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-25
  • Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法

    这篇文章主要介绍了Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-06-24
  • 工信部的ICP备案网站登录时验证码一直输入不正确怎么回事

    工信部的ICP备案网站登录时验证码一直输入不正确怎么回事,为了防止一些机器采集人工信部对于查询验证做得识别度极低,所以许多的朋友都会发现输入验证码一直有问题了,那...2016-10-10
  • jQuery实现发送验证码控制按钮禁用功能

    最近接到新需求,需要实现一个点击发送验证码之后,按钮禁用,在5秒之后取消禁用,看似需求很简单,实现起来还真的好好动动脑筋,下面小编把jquery控制按钮禁用核心代码分享给大家,需要的朋友参考下吧...2021-07-24